[3.13] gh-153056: Backport the relevant bits of (#153057) (#153369)
gh-153056: Backport the relevant bits of (#153057)
The data race for compiling the string.Template pattern in free-threading builds is not relevant for
3.13, due to the older string.Template and string.py module implementation. However, the secondary
bug identified by that isue is still relevant here, and fixed in this branch:
As a side effect, a subclass that supplies an already-compiled pattern now works too; previously
it raised the same ValueError at class definition.
* Document that the pattern attribute accepts a string or a compiled regex
* Comment the three states of pattern and note the documented-behavior fix in NEWS
* Update Doc/library/string.rst
---------
(cherry picked from commit
45729033bff28f8abc36c42e802cb2853c205737)
Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>