Same as wrap_around but works with regular expression based
    wildcards to map which methods are going to be used.

def wrap_around_re(aClass, wildcard, advice):
    """
    Same as wrap_around but works with regular expression based
    wildcards to map which methods are going to be used.
    """
    matcher = re.compile(wildcard)
    for aMember in dir(aClass):
        realMember = getattr(aClass, aMember)
        if callable(realMember) and aMember[:6]!="__wrap" and \
           aMember[:9]!="__proceed" and \
           matcher.match(aMember):
            wrap_around(realMember, advice)