anchor.diff:  BYTES_ESC
       : '\\' '\u0000'..'\u007F'
       ;
  +
  +
  +fragment
  +BYTES_TESC
  +    : '\u0000'..'\u005B'
  +    | '\u005D'..'\u007F'
  +    ;
  
positive.code: SLBYTESTRING
      : '\'' (BYTES_CHAR_SQ | BYTES_ESC)* '\''
      | '"' (BYTES_CHAR_DQ | BYTES_ESC)* '"'
      ;
  
  fragment
  
negative.code:     : '\\' .
      ;
  
  // The first two are single-line string with single- and double-quotes
  // The second two are multi-line strings with single- and double quotes
  fragment
  SLSTRING
      : '\'' (STRING_ESC | ~('\\' | '\r' | '\n' | '\'') )* '\''
      | '"' (STRING_ESC | ~('\\' | '\r' | '\n' | '"') )* '"'
      | '\'\'\'' (STRING_ESC | ~('\\') )* '\'\'\''
      | '"""' (STRING_ESC | ~('\\') )* '"""'
      ;
  
  
  