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

Reply via email to