Summary
When ignoreCase is enabled via (?i:...), word-class escapes and word boundary assertions should use case-insensitive classification.
Why
6 test262 regexp-modifiers tests fail for \b, \w, \B, \W, \P{} inside (?i:...).
Current behavior
(?i:\b) uses the same word boundary classification as \b outside the modifier group.
Expected behavior
\b inside (?i:...) treats case-equivalent characters as word characters per Unicode case folding.
Scope notes
- Encode ignoreCase state in RX_ASSERT_WORD Bx, like RX_ASSERT_START encodes multiline
- Goccia.RegExp.Compiler.pas CompileEscapeAtom and AddBuiltinCharClass
Summary
When ignoreCase is enabled via (?i:...), word-class escapes and word boundary assertions should use case-insensitive classification.
Why
6 test262 regexp-modifiers tests fail for \b, \w, \B, \W, \P{} inside (?i:...).
Current behavior
(?i:\b) uses the same word boundary classification as \b outside the modifier group.
Expected behavior
\b inside (?i:...) treats case-equivalent characters as word characters per Unicode case folding.
Scope notes