Ecmascript 2017 Language Specification:

21 Text Processing
21.1 String Objects
21.2 RegExp (Regular Expression) Objects
21.2.1 Patterns
21.2.1.1 SS: Early Errors
21.2.2 Pattern Semantics
21.2.2.1 Notation
21.2.2.2 Pattern
21.2.2.3 Disjunction
21.2.2.4 Alternative
21.2.2.5 Term
21.2.2.5.1 RS: RepeatMatcher ( m, min, max, greedy, x, c, parenIndex, parenCount )
21.2.2.6 Assertion
21.2.2.6.1 RS: WordCharacters ( )
21.2.2.6.2 RS: IsWordChar ( e )
21.2.2.7 Quantifier
21.2.2.8 Atom
21.2.2.8.1 RS: CharacterSetMatcher ( A, invert )
21.2.2.8.2 RS: Canonicalize ( ch )
21.2.2.9 AtomEscape
21.2.2.10 CharacterEscape
21.2.2.11 DecimalEscape
21.2.2.12 CharacterClassEscape
21.2.2.13 CharacterClass
21.2.2.14 ClassRanges
21.2.2.15 NonemptyClassRanges
21.2.2.15.1 RS: CharacterRange ( A, B )
21.2.2.16 NonemptyClassRangesNoDash
21.2.2.17 ClassAtom
21.2.2.18 ClassAtomNoDash
21.2.2.19 ClassEscape