* ``$$`` is an escape; it is replaced with a single ``$``.
* ``$identifier`` names a substitution placeholder matching a mapping key of
- ``"identifier"``. By default, ``"identifier"`` must spell a Python
- identifier. The first non-identifier character after the ``$`` character
- terminates this placeholder specification.
-
-* ``${identifier}`` is equivalent to ``$identifier``. It is required when valid
- identifier characters follow the placeholder but are not part of the
+ ``"identifier"``. By default, ``"identifier"`` is restricted to any
+ case-insensitive ASCII alphanumeric string (including underscores) that
+ starts with an underscore or ASCII letter. The first non-identifier
+ character after the ``$`` character terminates this placeholder
+ specification.
+
+* ``${identifier}`` is equivalent to ``$identifier``. It is required when
+ valid identifier characters follow the placeholder but are not part of the
placeholder, such as ``"${noun}ification"``.
Any other appearance of ``$`` in the string will result in a :exc:`ValueError`
Documentation
-------------
+- Issue #24351: Clarify what is meant by "identifier" in the context of
+ string.Template instances.
+
- Issue #22155: Add File Handlers subsection with createfilehandler to tkinter
doc. Remove obsolete example from FAQ. Patch by Martin Panter.