select subset of strings matching a regex
    treats strings as a set

def select_regexes(strings, regexes):
    """
    select subset of strings matching a regex
    treats strings as a set
    """
    strings = set(strings)
    select = set()
    if isinstance(strings, collections.Iterable):
        for r in regexes:
            s = set(filter(re.compile('^' + r + '$').search, strings))
            strings -= s
            select |= s
        return select
    else:
        raise ValueError("exclude should be iterable")