import re


def remove_tags_and_content(s, tag):
    """Removes all of the specified tags from the string including their children.

    Greedily finds an opening and closing of specified tag and removes all content
    between the two. 
    **Note**: Not intended to remove multiple sibling nodes with content in between.

    Args:
        s (:obj:`str`): The HTML to parse.
        tag (:obj:`str`): The tag to be removed.

    Returns:
        :obj:`str`: A string with all of the specified tags and their content removed.
    """

    return re.sub(rf'<\s*{tag}.*?>(.|\r|\n)*<\s*/\s*{tag}\s*>', '', s)