MRAB <[EMAIL PROTECTED]> writes: > > I think the problem is with this bit: '(?:(?:::)?\w+)*'. The '::' is > optional and also in a repeated group, so if it tries to match, say, > 'abc' it can try and then backtrack all of these possibilities: abc, > ab c, a bc, a b c. The longer the string, the more possibilities to > try. Try this instead: > > r = re.compile ( > r'(?P<scope>(?:::)?(?:\w+::)*)?' > r'(?P<name>\w+)' > r'(?:\((?P<arguments>[^\)]*)\))?' > )
That was indeed the problem. Your version is ok w/ the minor difference that the named group <scope> includes the '::' at the end. This can be easily stripped off. Or maybe the regexp can be massaged further. Thanks a lot, Maurizio -- http://mail.python.org/mailman/listinfo/python-list