Here's the session log: >>> _re_pair="(?(plus).|-)" >>> _re1=("(?P<plus>\+)"+_re_pair) >>> _re2=("((?P<plus>\+))"+_re_pair) >>> _re3=("(?:(?P<plus>\+))"+_re_pair) >>> _re4="(%s)"%_re3 >>> import re >>> print [re.match(_re, "+a") and 'match' for _re in [_re1, _re2, _re3, _re4]] ['match', None, 'match', None]
this is not the supposed behaivour. all theese patterns should match, right? -- http://mail.python.org/mailman/listinfo/python-list