the '*' and '+' don't seem to be greedy.. they will consume less in order to match a string:
>>> import re;re.match('(a+)(ab)','aaab').groups() ('aa', 'ab') this is the sort of behaviour i'd expect from '(a+?)(ab)' a+ should greedily consume a's at the expense of the string not matching in real life, i am trying to match #defines: >>> re.match( '#define ([A-Za-z0-9_]+)([^(])', '#define abc(d)').groups() ('ab', 'c') i want this example to fail because the first character after a string of letters is a '(' i want to match only #defines without parameters. so what's the definition of greedy? (pls copy me on responses) ta, jack -- http://mail.python.org/mailman/listinfo/python-list