Issue #2537: Remove breaked check which prevented valid regular expressions.
Patch by Meador Inge.
See also issue #18647.
diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py
index 2be5f5c..8b277cf 100644
--- a/Lib/test/test_re.py
+++ b/Lib/test/test_re.py
@@ -908,6 +908,16 @@
[b'xyz'], msg=pattern)
+ def test_bug_2537(self):
+ # issue 2537: empty submatches
+ for outer_op in ('{0,}', '*', '+', '{1,187}'):
+ for inner_op in ('{0,}', '*', '?'):
+ r = re.compile("^((x|y)%s)%s" % (inner_op, outer_op))
+ m = r.match("xyyzy")
+ self.assertEqual(m.group(0), "xyy")
+ self.assertEqual(m.group(1), "")
+ self.assertEqual(m.group(2), "y")
+
def run_re_tests():
from test.re_tests import tests, SUCCEED, FAIL, SYNTAX_ERROR
if verbose: