Remove the upper limit of hex digits in Unicode code point escapes

E.g. `'\u{00000000000000000001D306}' == '\u{1D306}'`. This was already implemented correctly for string literals, but the code for regular expressions only supported up to 6 hexadecimal digits. This patch fixes that and adds tests for this behavior. I’ve also added a comment that explains the downsides of the hacky way we test if a regular expression is valid (but AFAICT there is no reasonable other way to do it).