pub fn remove_tag_with_prefix(text: &str, prefix: &str) -> String {
    // First, find all unique tag names that start with the prefix
    let tag_pattern = format!(r"<({prefix}[a-zA-Z0-9_-]*?)(?:\s[^>]*?)?>");
    let mut tag_names = Vec::new();

    if let Ok(regex) = regex::Regex::new(&tag_pattern) {
        for captures in regex.captures_iter(text) {
            if let Some(tag_name) = captures.get(1) {
                // Only add unique tag names to the list
                let tag_name = tag_name.as_str().to_string();
                if !tag_names.contains(&tag_name) {
                    tag_names.push(tag_name);
                }
            }
        }
    }

    // Now remove content for each tag name found
    let mut result = text.to_string();
    for tag_name in tag_names {
        // Create pattern to match complete tag including content
        let pattern = format!(r"<{tag_name}(?:\s[^>]*?)?>[\s\S]*?</{tag_name}>");

        if let Ok(regex) = regex::Regex::new(&pattern) {
            result = regex.replace_all(&result, "").to_string();
        }
    }

    result
}
Removes content within XML-style tags that start with the specified prefix
crates/forge_domain/src/xml.rs