--- M:/projects/python_working/Lib/sre_compile.py.bak5 Sun Sep 21 19:45:15 2008 +++ M:/projects/python_working/Lib/sre_compile.py Mon Sep 22 01:00:01 2008 @@ -321,13 +321,16 @@ elif op is SUBPATTERN: if av[0]: group_index = info.group_count + mark_1, mark_2 = group_index * 2, group_index * 2 + 1 + if dir < 0: + mark_1, mark_2 = mark_2, mark_1 info.group_count += 1 emit(OPCODES[MARK]) - emit(group_index * 2) + emit(mark_1) _compile(code, av[1], flags, info, dir) if av[0]: emit(OPCODES[MARK]) - emit(group_index * 2 + 1) + emit(mark_2) elif op is ATOMIC: emit(OPCODES[ATOMIC]) _compile(code, av[1], flags, info, dir)