PEP 701 reimplemented f-strings in the formal grammar for Python 3.12. Three restrictions disappeared. The same quote character may now be reused inside the expression part, so f"{d["key"]}" is valid. Backslashes are allowed inside the expression, so f"{'\n'.join(items)}" parses. Nesting depth is no longer capped, and comments are permitted inside multi-line f-string expressions.
This is a forward-only syntax change with no __future__ import. Code written this way is a hard SyntaxError on 3.11 and earlier, which is easy to miss because most linters and formatters will accept it once they target 3.12.
The practical consequence is for libraries that still support 3.9 through 3.11: set requires-python accordingly and keep the older escape-hatch style, extracting the separator into a named variable first. Verify by running python3.11 -m compileall over the package, which reports the exact file and column of any 3.12-only f-string.