@Override
    @NotNull
    public TextRange getRangeInElement() {
      ASTNode node = getNode();
      ASTNode firstNode = node.findChildByType(RegExpTT.CARET);
      if (firstNode == null) {
        firstNode = node.findChildByType(RegExpTT.LBRACE);
      }
      assert firstNode != null;
      ASTNode eq = node.findChildByType(RegExpTT.EQ);
      final ASTNode rbrace = node.findChildByType(RegExpTT.RBRACE);
      int to;
      if (eq != null) {
        to = eq.getTextRange().getEndOffset() - 1;
      }
      else if (rbrace != null) {
        to = rbrace.getTextRange().getEndOffset() - 1;
      }
      else {
        to = getTextRange().getEndOffset();
      }

      final TextRange t = new TextRange(firstNode.getStartOffset() + 1, to);
      return t.shiftRight(-getTextRange().getStartOffset());
    }
@Override
    @NotNull
    public TextRange getRangeInElement()