anchor.diff:    ;
   
   fragment IRIREF_INNER_CHAR_EXT
  -  :  (PN_CHARS | '.' | ':' | '/' | '\\' | '#' | '@' | '%' | '&' | '{' | '}' | UCHAR)
  +  :  (IRIREF_INNER_CHAR | '{' | '}')
     ;
   
   fragment VARIABLE_CHAR
  
positive.code:   : '{' RIGHT_PART_TAIL_EXT ? | RIGHT_PART_FIRST_CHAR RIGHT_PART_TAIL_EXT_MAND
    ;
  
  // extends PN_LOCAL in the original grammar to allow slash
  PN_LOCAL
    : RIGHT_PART_FIRST_CHAR RIGHT_PART_TAIL?
    ;
  
negative.code:    ;
  
  PREFIXED_NAME
     : PNAME_NS PN_LOCAL
    ;
  
  // extends PREFIXED_NAME to allow right-hand side curly brackets, and force one right-hand side opening curly bracket
  PREFIXED_NAME_EXT
    : PNAME_NS PN_LOCAL_EXT
    ;
  
  BLANK_NODE_LABEL
    : '_:' (PN_CHARS_U | [0-9]) ((PN_CHARS | '.')* PN_CHARS )?
  