[Python-Dev] one last SRE headache (original) (raw)

Fredrik Lundh Fredrik Lundh" <effbot@telia.com
Thu, 31 Aug 2000 21:46:54 +0200


can anyone tell me how Perl treats this pattern?

r'((((((((((a))))))))))\41'

in SRE, this is currently a couple of nested groups, surrounding a single literal, followed by a back reference to the fourth group, followed by a literal "1" (since there are less than 41 groups)

in PRE, it turns out that this is a syntax error; there's no group 41.

however, this test appears in the test suite under the section "all test from perl", but they're commented out:

Python does not have the same rules for \41 so this is a syntax error

('((((((((((a))))))))))\41', 'aa', FAIL),

('((((((((((a))))))))))\41', 'a!', SUCCEED, 'found', 'a!'),

if I understand this correctly, Perl treats as an octal escape (chr(041) == "!").

now, should I emulate PRE, Perl, or leave it as it is...

PS. in case anyone wondered why I haven't seen this before, it's because I just discovered that the test suite masks syntax errors under some circumstances...