diff --git a/spec.html b/spec.html index c9f63720526..1b254c08aa7 100644 --- a/spec.html +++ b/spec.html @@ -34950,31 +34950,31 @@

Patterns

The RegExp constructor applies the following grammar to the input pattern String. An error occurs if the grammar cannot interpret the String as an expansion of |Pattern|.

Syntax

- Pattern[UnicodeMode, UnicodeSetsMode, N] :: - Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] + Pattern[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: + Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] - Disjunction[UnicodeMode, UnicodeSetsMode, N] :: - Alternative[?UnicodeMode, ?UnicodeSetsMode, ?N] - Alternative[?UnicodeMode, ?UnicodeSetsMode, ?N] `|` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] + Disjunction[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: + Alternative[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] + Alternative[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `|` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] - Alternative[UnicodeMode, UnicodeSetsMode, N] :: + Alternative[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: [empty] - Alternative[?UnicodeMode, ?UnicodeSetsMode, ?N] Term[?UnicodeMode, ?UnicodeSetsMode, ?N] + Alternative[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] Term[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] - Term[UnicodeMode, UnicodeSetsMode, N] :: - Assertion[?UnicodeMode, ?UnicodeSetsMode, ?N] - Atom[?UnicodeMode, ?UnicodeSetsMode, ?N] - Atom[?UnicodeMode, ?UnicodeSetsMode, ?N] Quantifier + Term[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: + Assertion[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] + Atom[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] + Atom[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] Quantifier - Assertion[UnicodeMode, UnicodeSetsMode, N] :: + Assertion[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: `^` `$` `\b` `\B` - `(?=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` - `(?!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` - `(?<=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` - `(?<!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` + `(?=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + `(?!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + `(?<=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + `(?<!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` Quantifier :: QuantifierPrefix @@ -34988,13 +34988,13 @@

Syntax

`{` DecimalDigits[~Sep] `,}` `{` DecimalDigits[~Sep] `,` DecimalDigits[~Sep] `}` - Atom[UnicodeMode, UnicodeSetsMode, N] :: + Atom[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: PatternCharacter `.` - `\` AtomEscape[?UnicodeMode, ?N] + `\` AtomEscape[?UnicodeMode, ?WithNamedCaptureGroups] CharacterClass[?UnicodeMode, ?UnicodeSetsMode] - `(` GroupSpecifier[?UnicodeMode]? Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` - `(?:` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` + `(` GroupSpecifier[?UnicodeMode]? Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + `(?:` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` SyntaxCharacter :: one of `^` `$` `\` `.` `*` `+` `?` `(` `)` `[` `]` `{` `}` `|` @@ -35002,11 +35002,11 @@

Syntax

PatternCharacter :: SourceCharacter but not SyntaxCharacter - AtomEscape[UnicodeMode, N] :: + AtomEscape[UnicodeMode, WithNamedCaptureGroups] :: DecimalEscape CharacterClassEscape[?UnicodeMode] CharacterEscape[?UnicodeMode] - [+N] `k` GroupName[?UnicodeMode] + [+WithNamedCaptureGroups] `k` GroupName[?UnicodeMode] CharacterEscape[UnicodeMode] :: ControlEscape @@ -48713,37 +48713,37 @@

Regular Expressions Patterns

This alternative pattern grammar and semantics only changes the syntax and semantics of BMP patterns. The following grammar extensions include productions parameterized with the [UnicodeMode] parameter. However, none of these extensions change the syntax of Unicode patterns recognized when parsing with the [UnicodeMode] parameter present on the goal symbol.

Syntax

- Term[UnicodeMode, UnicodeSetsMode, N] :: - [+UnicodeMode] Assertion[+UnicodeMode, ?UnicodeSetsMode, ?N] - [+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?N] Quantifier - [+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?N] - [~UnicodeMode] QuantifiableAssertion[?N] Quantifier - [~UnicodeMode] Assertion[~UnicodeMode, ~UnicodeSetsMode, ?N] - [~UnicodeMode] ExtendedAtom[?N] Quantifier - [~UnicodeMode] ExtendedAtom[?N] - - Assertion[UnicodeMode, UnicodeSetsMode, N] :: + Term[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: + [+UnicodeMode] Assertion[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] + [+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] Quantifier + [+UnicodeMode] Atom[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] + [~UnicodeMode] QuantifiableAssertion[?WithNamedCaptureGroups] Quantifier + [~UnicodeMode] Assertion[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] + [~UnicodeMode] ExtendedAtom[?WithNamedCaptureGroups] Quantifier + [~UnicodeMode] ExtendedAtom[?WithNamedCaptureGroups] + + Assertion[UnicodeMode, UnicodeSetsMode, WithNamedCaptureGroups] :: `^` `$` `\b` `\B` - [+UnicodeMode] `(?=` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?N] `)` - [+UnicodeMode] `(?!` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?N] `)` - [~UnicodeMode] QuantifiableAssertion[?N] - `(?<=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` - `(?<!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?N] `)` + [+UnicodeMode] `(?=` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + [+UnicodeMode] `(?!` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + [~UnicodeMode] QuantifiableAssertion[?WithNamedCaptureGroups] + `(?<=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + `(?<!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?WithNamedCaptureGroups] `)` - QuantifiableAssertion[N] :: - `(?=` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)` - `(?!` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)` + QuantifiableAssertion[WithNamedCaptureGroups] :: + `(?=` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + `(?!` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)` - ExtendedAtom[N] :: + ExtendedAtom[WithNamedCaptureGroups] :: `.` - `\` AtomEscape[~UnicodeMode, ?N] + `\` AtomEscape[~UnicodeMode, ?WithNamedCaptureGroups] `\` [lookahead == `c`] CharacterClass[~UnicodeMode, ~UnicodeSetsMode] - `(` GroupSpecifier[~UnicodeMode]? Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)` - `(?:` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?N] `)` + `(` GroupSpecifier[~UnicodeMode]? Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)` + `(?:` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?WithNamedCaptureGroups] `)` InvalidBracedQuantifier ExtendedPatternCharacter @@ -48755,42 +48755,42 @@

Syntax

ExtendedPatternCharacter :: SourceCharacter but not one of `^` `$` `\` `.` `*` `+` `?` `(` `)` `[` `|` - AtomEscape[UnicodeMode, N] :: + AtomEscape[UnicodeMode, WithNamedCaptureGroups] :: [+UnicodeMode] DecimalEscape [~UnicodeMode] DecimalEscape [> but only if the CapturingGroupNumber of |DecimalEscape| is ≤ CountLeftCapturingParensWithin(the |Pattern| containing |DecimalEscape|)] CharacterClassEscape[?UnicodeMode] - CharacterEscape[?UnicodeMode, ?N] - [+N] `k` GroupName[?UnicodeMode] + CharacterEscape[?UnicodeMode, ?WithNamedCaptureGroups] + [+WithNamedCaptureGroups] `k` GroupName[?UnicodeMode] - CharacterEscape[UnicodeMode, N] :: + CharacterEscape[UnicodeMode, WithNamedCaptureGroups] :: ControlEscape `c` AsciiLetter `0` [lookahead ∉ DecimalDigit] HexEscapeSequence RegExpUnicodeEscapeSequence[?UnicodeMode] [~UnicodeMode] LegacyOctalEscapeSequence - IdentityEscape[?UnicodeMode, ?N] + IdentityEscape[?UnicodeMode, ?WithNamedCaptureGroups] - IdentityEscape[UnicodeMode, N] :: + IdentityEscape[UnicodeMode, WithNamedCaptureGroups] :: [+UnicodeMode] SyntaxCharacter [+UnicodeMode] `/` - [~UnicodeMode] SourceCharacterIdentityEscape[?N] + [~UnicodeMode] SourceCharacterIdentityEscape[?WithNamedCaptureGroups] - SourceCharacterIdentityEscape[N] :: - [~N] SourceCharacter but not `c` - [+N] SourceCharacter but not one of `c` or `k` + SourceCharacterIdentityEscape[WithNamedCaptureGroups] :: + [~WithNamedCaptureGroups] SourceCharacter but not `c` + [+WithNamedCaptureGroups] SourceCharacter but not one of `c` or `k` - ClassAtomNoDash[UnicodeMode, N] :: + ClassAtomNoDash[UnicodeMode, WithNamedCaptureGroups] :: SourceCharacter but not one of `\` or `]` or `-` - `\` ClassEscape[?UnicodeMode, ?N] + `\` ClassEscape[?UnicodeMode, ?WithNamedCaptureGroups] `\` [lookahead == `c`] - ClassEscape[UnicodeMode, N] :: + ClassEscape[UnicodeMode, WithNamedCaptureGroups] :: `b` [+UnicodeMode] `-` [~UnicodeMode] `c` ClassControlLetter CharacterClassEscape[?UnicodeMode] - CharacterEscape[?UnicodeMode, ?N] + CharacterEscape[?UnicodeMode, ?WithNamedCaptureGroups] ClassControlLetter :: DecimalDigit