diff -r d6d15fcf5eb6 Lib/sre_parse.py
--- a/Lib/sre_parse.py Mon Nov 21 18:04:30 2011 +0100
+++ b/Lib/sre_parse.py Thu Nov 24 10:18:51 2011 -0500
@@ -222,6 +222,8 @@
def isname(name):
# check that group name is a valid string
+ if name == "":
+ return False
if not isident(name[0]):
return False
for char in name[1:]:
diff -r d6d15fcf5eb6 Lib/test/test_re.py
--- a/Lib/test/test_re.py Mon Nov 21 18:04:30 2011 +0100
+++ b/Lib/test/test_re.py Thu Nov 24 10:18:51 2011 -0500
@@ -154,6 +154,8 @@
self.assertRaises(re.error, re.sub, '(?Px)', '\g<', 'xx')
self.assertRaises(re.error, re.sub, '(?Px)', '\g', 'xx')
self.assertRaises(re.error, re.sub, '(?Px)', '\g', 'xx')
+ self.assertRaises(re.error, re.sub, '(?P=)' , '\g', 'xx')
+ self.assertRaises(re.error, re.sub, '(?P<>)' , '\g', 'xx')
self.assertRaises(re.error, re.sub, '(?Px)', '\g<1a1>', 'xx')
self.assertRaises(IndexError, re.sub, '(?Px)', '\g', 'xx')
self.assertRaises(re.error, re.sub, '(?Px)|(?Py)', '\g', 'xx')