You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It is a Syntax Error if the source text matched by the first |RegularExpressionModifiers| and the source text matched by the second |RegularExpressionModifiers| are both empty.
36054
+
</li>
36055
+
<li>
36056
+
It is a Syntax Error if the source text matched by the first |RegularExpressionModifiers| contains the same code point more than once.
36057
+
</li>
36058
+
<li>
36059
+
It is a Syntax Error if the source text matched by the second |RegularExpressionModifiers| contains the same code point more than once.
36060
+
</li>
36061
+
<li>
36062
+
It is a Syntax Error if any code point in the source text matched by the first |RegularExpressionModifiers| is also contained in the source text matched by the second |RegularExpressionModifiers|.
<p>Parentheses of the form `(` |Disjunction| `)` serve both to group the components of the |Disjunction| pattern together and to save the result of the match. The result can be used either in a backreference (`\\` followed by a non-zero decimal number), referenced in a replace String, or returned as part of an array from the regular expression matching Abstract Closure. To inhibit the capturing behaviour of parentheses, use the form `(?:` |Disjunction| `)` instead.</p>
1. Let _addModifiers_ be the source text matched by the first |RegularExpressionModifiers|.
37272
+
1. Let _removeModifiers_ be the source text matched by the second |RegularExpressionModifiers|.
37273
+
1. Let _modifiedRer_ be UpdateModifiers(_rer_, CodePointsToString(_addModifiers_), CodePointsToString(_removeModifiers_)).
37274
+
1. Return CompileSubpattern of |Disjunction| with arguments _modifiedRer_ and _direction_.
37236
37275
</emu-alg>
37237
37276
37238
37277
<!-- AtomEscape -->
@@ -37384,6 +37423,34 @@ <h1>
37384
37423
<p>In case-insignificant matches when HasEitherUnicodeFlag(_rer_) is *false*, the mapping is based on Unicode Default Case Conversion algorithm toUppercase rather than toCasefold, which results in some subtle differences. For example, `Ω` (U+2126 OHM SIGN) is mapped by toUppercase to itself but by toCasefold to `ω` (U+03C9 GREEK SMALL LETTER OMEGA) along with `Ω` (U+03A9 GREEK CAPITAL LETTER OMEGA), so *"\u2126"* is matched by `/[ω]/ui` and `/[\u03A9]/ui` but not by `/[ω]/i` or `/[\u03A9]/i`. Also, no code point outside the Basic Latin block is mapped to a code point within it, so strings such as *"\u017F ſ"* and *"\u212A K"* are not matched by `/[a-z]/i`.</p>
0 commit comments