anchor.diff:    ;
   
   PN_CHARS
  -  : PN_CHARS_U | '-' | [0-9] | '\u00B7' | [\u0300-\u036F] | [\u203F-\u2040]
  +  : PN_CHARS_U | '-' | [0-9] | '\u00B7' | [\u0300-\u036F] | [\u203F-\u2040] | '?' | '='
     ;
   
   // extends PN_LOCAL to allow curly brackets, and force at least one (opening) curly bracket
  
positive.code:   ;
  
  fragment RIGHT_PART_CHAR
    : (PN_CHARS | '.' | ':' | '/' | '#' | '=' | '?' | ';' | PLX)
    ;
  
  fragment RIGHT_PART_CHAR_EXT
  
negative.code:   ;
  
  fragment IRIREF_INNER_CHAR
    :  (PN_CHARS | '.' | ':' | '/' | '\\' | '#' | '@' | '%' | '&' | ';' | UCHAR)
    ;
  
  fragment IRIREF_INNER_CHAR_EXT
  