``(?P<name>...)``
Similar to regular parentheses, but the substring matched by the group is
accessible via the symbolic group name *name*. Group names must be valid
- Python identifiers, and in bytes patterns they must contain only characters
- in the ASCII range. Each group name must be defined only once within a
- regular expression. A symbolic group is also a numbered group, just as if
+ Python identifiers, and in :class:`bytes` patterns they can only contain
+ bytes in the ASCII range. Each group name must be defined only once within
+ a regular expression. A symbolic group is also a numbered group, just as if
the group were not named.
Named groups can be referenced in three contexts. If the pattern is
+---------------------------------------+----------------------------------+
.. versionchanged:: 3.12
- In bytes patterns group names must contain only characters in
- the ASCII range.
+ In :class:`bytes` patterns, group *name* can only contain bytes
+ in the ASCII range (``b'\x00'``-``b'\x7f'``).
.. index:: single: (?P=; in regular expressions
.. versionchanged:: 3.12
Group *id* can only contain ASCII digits.
+ In :class:`bytes` patterns, group *name* can only contain bytes
+ in the ASCII range (``b'\x00'``-``b'\x7f'``).
The special sequences consist of ``'\'`` and a character from the list below.
.. versionchanged:: 3.12
Group *id* can only contain ASCII digits.
- In bytes replacement strings group names must contain only characters
- in the ASCII range.
+ In :class:`bytes` replacement strings, group *name* can only contain bytes
+ in the ASCII range (``b'\x00'``-``b'\x7f'``).
.. function:: subn(pattern, repl, string, count=0, flags=0)