anchor.diff:  
   NOW : ('N'|'n')('O'|'o')('W'|'w');
   
  +UUID : ('U'|'u')('U'|'u')('I'|'i')('D'|'d');
  +
  +STRUUID : ('S'|'s')('T'|'t')('R'|'r')('U'|'u')('U'|'u')('I'|'i')('D'|'d');
  +
   MD5 : ('M'|'m')('D'|'d')'5';
   
   SHA1 : ('S'|'s')('H'|'h')('A'|'a')'1';
  
positive.code: 
  fragment
  ECHAR : '\\' ('t' | 'b' | 'n' | 'r' | 'f' | '\\' | '"' | '\'');
      
  fragment
  IRI_REF_CHARACTERS
      :  ~('<' | '>' | '"' | OPEN_CURLY_BRACE | CLOSE_CURLY_BRACE | PIPE | INVERSE | '`' | '\\' | '\u0000' | '\u0001'| '\u0002' | '\u0003' | '\u0004'| '\u0005' | '\u0006'| '\u0007' | '\u0008' | '\u0009'| '\u000A' | '\u000B'| '\u000C' | '\u000D' | '\u000E'| '\u000F'| '\u0010' | '\u0011'| '\u0012' | '\u0013' | '\u0014'| '\u0015' | '\u0016'| '\u0017' | '\u0018' | '\u0019'| '\u001A' | '\u001B'| '\u001C' | '\u001D' | '\u001E'| '\u001F' | '\u0020')
      ;
  
  fragment
  PN_CHARS_U : PN_CHARS_BASE | '_';
  
  fragment
  VARNAME : (PN_CHARS_U | DIGIT) (PN_CHARS_U | DIGIT | '\u00B7' | '\u0300'..'\u036F' | '\u203F'..'\u2040')*;
  
  fragment
  PN_CHARS
      : PN_CHARS_U
      | MINUS
      | DIGIT
      | '\u00B7' 
      | '\u0300'..'\u036F'
      | '\u203F'..'\u2040'
      ;
  
  fragment
  PN_PREFIX : PN_CHARS_BASE ((PN_CHARS|DOT)* PN_CHARS)?;
  
  fragment
  PN_LOCAL : (PN_CHARS_U|DIGIT|PLX)  ((PN_CHARS| DOT| PLX)* (PN_CHARS|PLX))?;
  
  fragment
  PN_CHARS_BASE
  
negative.code:     | '\u3001'..'\uD7FF'
      | '\uF900'..'\uFDCF'
      | '\uFDF0'..'\uFFFD'
      //| '\u10000'..'\uEFFFF'
      ;
  
  fragment
  PN_CHARS_U : PN_CHARS_BASE | '_';
  
  fragment
  VARNAME : (PN_CHARS_U | DIGIT) (PN_CHARS_U | DIGIT | '\u00B7' | '\u0300'..'\u036F' | '\u203F'..'\u2040')*;
  
  fragment
  PN_CHARS : PN_CHARS_U | MINUS | DIGIT | '\u00B7' | '\u0300'..'\u036F' | '\u203F'..'\u2040';
  
  fragment
  PN_PREFIX : PN_CHARS_BASE ((PN_CHARS|DOT)* PN_CHARS)?;
  
  fragment
  PN_LOCAL : (PN_CHARS_U|':'|DIGIT|PLX) ((PN_CHARS|DOT|':'|PLX)* (PN_CHARS|':'|PLX))?;
  
  fragment
  PLX : PERCENT | PN_LOCAL_ESC;
  
  fragment
  