The U+ prefix regex was hardcoded to exactly 4 hex digits, rejecting
valid astral plane codepoints like U+1F600 and zero-padded forms like
U+000041. Widen the quantifier to {4,6} for U+ only; \u and %u retain
their fixed 4-digit requirement.
Closes #2242