print (/a\${2}/)
-----
Groovy script
  Method call
    Reference expression
      PsiElement(identifier)('print')
    PsiWhiteSpace(' ')
    Arguments
      PsiElement(()('(')
      Compound regular expression
        PsiElement(regex begin)('/')
        GrStringContentImpl(GString content element)
          PsiElement(regex content)('a\')
        GString injection
          PsiElement($)('$')
          Closable block
            PsiElement({)('{')
            Parameter list
              <empty list>
            Literal
              PsiElement(Integer)('2')
            PsiElement(})('}')
        GrStringContentImpl(GString content element)
          ASTWrapperPsiElement(regex content)
            <empty list>
        PsiElement(regex end)('/')
      PsiElement())(')')