New submission from Ned Batchelder <n...@nedbatchelder.com>:
In this code, the same regex is compiled with and without re.VERBOSE. Without, it compiles fine. With, it fails with an "unterminated subpattern" error. list_num_rx1 = r"""(?P<paren>\()?(\d+|#|[a-z])(?(paren)\)|\.)""" list_num_rx2 = r"""(?x)(?P<paren>\()?(\d+|#|[a-z])(?(paren)\)|\.)""" # This works: re.compile(list_num_rx1) # Either of these fails: re.compile(list_num_rx1, flags=re.VERBOSE) re.compile(list_num_rx2) (What I really wanted was this, but the error happens without the multiline string:) list_num_rx = r"""(?x) (?P<paren>\()? # maybe an opening paren (\d+|#|[a-z]) # the number: 123, or #, or a-z (?(paren) # if we had an opening paren.. \)| # then we need a closing paren \. # otherwise a dot. ) """ ---------- components: Regular Expressions messages: 416340 nosy: ezio.melotti, mrabarnett, nedbat priority: normal severity: normal status: open title: "unterminated subpattern" in valid regex if re.VERBOSE is used _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue47163> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com