09:33 | <nicolo-ribaudo> | RegExp syntax spec question: https://tc39.es/ecma262/#prod-annexB-Assertion
Why does the current grammar for Annex B Assertion need to explicitly check the UnicodeMode flag?
Assertion[UnicodeMode, UnicodeSetsMode, NamedCaptureGroups] ::
`^`
`$`
`\b`
`\B`
[+UnicodeMode] `(?=` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
[+UnicodeMode] `(?!` Disjunction[+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
[~UnicodeMode] QuantifiableAssertion[?NamedCaptureGroups]
`(?<=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
`(?<!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
QuantifiableAssertion[NamedCaptureGroups] ::
`(?=` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups] `)`
`(?!` Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups] `)`
Could it be simplified to this?
Assertion[UnicodeMode, UnicodeSetsMode, NamedCaptureGroups] ::
`^`
`$`
`\b`
`\B`
`(?=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
`(?!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
`(?<=` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
`(?<!` Disjunction[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups] `)`
|