REGEXP_FILE
  RegExpPatternImpl: <(bc+d$|ef*g.|h?i(j|k))>
    RegExpBranchImpl: <(bc+d$|ef*g.|h?i(j|k))>
      RegExpGroupImpl: <(bc+d$|ef*g.|h?i(j|k))>
        PsiElement(GROUP_BEGIN)('(')
        RegExpPatternImpl: <bc+d$|ef*g.|h?i(j|k)>
          RegExpBranchImpl: <bc+d$>
            RegExpCharImpl: <b>
              PsiElement(CHARACTER)('b')
            RegExpClosureImpl: <c+>
              RegExpCharImpl: <c>
                PsiElement(CHARACTER)('c')
              RegExpQuantifierImpl: <+>
                PsiElement(PLUS)('+')
            RegExpCharImpl: <d>
              PsiElement(CHARACTER)('d')
            RegExpBoundaryImpl: <$>
              PsiElement(DOLLAR)('$')
          PsiElement(UNION)('|')
          RegExpBranchImpl: <ef*g.>
            RegExpCharImpl: <e>
              PsiElement(CHARACTER)('e')
            RegExpClosureImpl: <f*>
              RegExpCharImpl: <f>
                PsiElement(CHARACTER)('f')
              RegExpQuantifierImpl: <*>
                PsiElement(STAR)('*')
            RegExpCharImpl: <g>
              PsiElement(CHARACTER)('g')
            RegExpSimpleClassImpl: <.>
              PsiElement(DOT)('.')
          PsiElement(UNION)('|')
          RegExpBranchImpl: <h?i(j|k)>
            RegExpClosureImpl: <h?>
              RegExpCharImpl: <h>
                PsiElement(CHARACTER)('h')
              RegExpQuantifierImpl: <?>
                PsiElement(QUEST)('?')
            RegExpCharImpl: <i>
              PsiElement(CHARACTER)('i')
            RegExpGroupImpl: <(j|k)>
              PsiElement(GROUP_BEGIN)('(')
              RegExpPatternImpl: <j|k>
                RegExpBranchImpl: <j>
                  RegExpCharImpl: <j>
                    PsiElement(CHARACTER)('j')
                PsiElement(UNION)('|')
                RegExpBranchImpl: <k>
                  RegExpCharImpl: <k>
                    PsiElement(CHARACTER)('k')
              PsiElement(GROUP_END)(')')
        PsiElement(GROUP_END)(')')