anchor.diff:                   @after{ $s = new RegexpExpression($s_expr.s, regexp, $s_replacement.text); }
                    : s_expr=expression COMMA_LIT
                      ( s_regexp_str=QSTRING{ regexp = $s_regexp_str.text; }
  -                   | s_regexp_re=regex{ regexp = $s_regexp_re.s; }
  +                   | s_regexp_re=REGEX{ regexp = $s_regexp_re.text; }
                      ) COMMA_LIT
                      s_replacement=QSTRING
                      BRACE_CLOSE_LIT
  
positive.code:                    s_rdi=name
                     { $s = new LiteralGroupExpression($s_rdi.s); }
                   ;
  
  /*
   * String logic.
   *
   * Strings are enclosed in double quotes and may contain escape sequences.
   * Strings are sensitive to white space.
   */
  
  quoted_identifier returns [ String s = "" ]
                   : s1=SQSTRING
                     { $s = $s1.getText(); }
                   ;
  regex            returns [ String s = "" ]
                   : s1=REGEX
                     { $s = $s1.getText(); }
                   ;
  
  
  /*
   * Arithmatic expressions.
  
negative.code:                        )
                         ( qs=QSTRING
                           { expr = regex_transform.apply(expr, $qs.text); }
                         | re=REGEX
                           { expr = regex_transform.apply(expr, $re.text); }
                         )
                       )
                     )?
  