As of C23, UCNs within string literals or character constants can contain any valid Unicode code point, including ASCII characters or control characters.
The validity of UCNs within identifiers is now defined based on the XID_Start and XID_Continue Unicode properties. A helper program is used to generate tables of the allowed characters based on a Unicode data file. These can be updated for future Unicode versions by re-running the helper program using the updated Unicode data files.