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

Fredrik Lundh Fredrik Lundh" <effbot@telia.com
Thu, 31 Aug 2000 22:33:11 +0200


guido wrote:

Suggestion:

If there are fewer than 3 digits, it's a group. If there are exactly 3 digits and you have 100 or more groups, it's a group -- too bad, you lose octal number support. Use \x. :-) If there are exactly 3 digits and you have at most 99 groups, it's an octal escape.

I had to add one rule:

If it starts with a zero, it's always an octal number.
Up to two more octal digits are accepted after the
leading zero.

but this still fails on this pattern:

r'(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\119'

where the last part is supposed to be a reference to group 11, followed by a literal '9'.

more ideas?

(Can you even have more than 99 groups in SRE?)

yes -- the current limit is 100 groups. but that's an artificial limit, and it should be removed.