anchor.diff:  fragment
   F_PositiveDigit
   :
  -  [1-9]
  +    [1-9]
   ;
   
   fragment
   F_Uint8
   :
  -  F_Digit
  -  | F_PositiveDigit F_Digit
  -  | '1' F_Digit F_Digit
  -  | '2' [0-4] F_Digit
  -  | '25' [0-5]
  +    F_Digit
  +    | F_PositiveDigit F_Digit
  +    | '1' F_Digit F_Digit
  +    | '2' [0-4] F_Digit
  +    | '25' [0-5]
   ;
   
   fragment
   F_Uint16
   :
  -  F_Digit
  -  | F_PositiveDigit F_Digit F_Digit? F_Digit?
  -  | [1-5] F_Digit F_Digit F_Digit F_Digit
  -  | '6' [0-4] F_Digit F_Digit F_Digit
  -  | '65' [0-4] F_Digit F_Digit
  -  | '655' [0-2] F_Digit
  -  | '6553' [0-5]
  +    F_Digit
  +    | F_PositiveDigit F_Digit F_Digit? F_Digit?
  +    | [1-5] F_Digit F_Digit F_Digit F_Digit
  +    | '6' [0-4] F_Digit F_Digit F_Digit
  +    | '65' [0-4] F_Digit F_Digit
  +    | '655' [0-2] F_Digit
  +    | '6553' [0-5]
   ;
   
   fragment
   F_Uint32
   :
   // 0-4294967295
  -  F_Digit
  -  | F_PositiveDigit F_Digit F_Digit? F_Digit? F_Digit? F_Digit? F_Digit?
  -  F_Digit? F_Digit?
  -  | [1-3] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  -  F_Digit
  -  | '4' [0-1] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  -  | '42' [0-8] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  -  | '429' [0-3] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  -  | '4294' [0-8] F_Digit F_Digit F_Digit F_Digit F_Digit
  -  | '42949' [0-5] F_Digit F_Digit F_Digit F_Digit
  -  | '429496' [0-6] F_Digit F_Digit F_Digit
  -  | '4294967' [0-1] F_Digit F_Digit
  -  | '42949672' [0-8] F_Digit
  -  | '429496729' [0-5]
  +    F_Digit
  +    | F_PositiveDigit F_Digit F_Digit? F_Digit? F_Digit? F_Digit? F_Digit?
  +    F_Digit? F_Digit?
  +    | [1-3] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  +    F_Digit
  +    | '4' [0-1] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  +    | '42' [0-8] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  +    | '429' [0-3] F_Digit F_Digit F_Digit F_Digit F_Digit F_Digit
  +    | '4294' [0-8] F_Digit F_Digit F_Digit F_Digit F_Digit
  +    | '42949' [0-5] F_Digit F_Digit F_Digit F_Digit
  +    | '429496' [0-6] F_Digit F_Digit F_Digit
  +    | '4294967' [0-1] F_Digit F_Digit
  +    | '42949672' [0-8] F_Digit
  +    | '429496729' [0-5]
   ;
   
   fragment
   F_Url
   :
  -  F_UrlStart F_UrlInner+
  +    F_UrlStart F_UrlInner+
   ;
   
   F_UrlStart
   :
  -  [a-zA-Z]
  +    [a-zA-Z]
   ;
   
   F_UrlInner
   :
  -  F_UrlInnerAlphaNum
  -  | F_UrlInnerReserved
  -  | F_UrlInnerUnreserved
  +    F_UrlInnerAlphaNum
  +    | F_UrlInnerReserved
  +    | F_UrlInnerUnreserved
   ;
   
   F_UrlInnerAlphaNum
   :
  -  [a-zA-Z0-9]
  +    [a-zA-Z0-9]
   ;
   
   F_UrlInnerReserved
   :
  -  [!*'();:@&=+$,/?%#[\]]
  +    [!*'();:@&=+$,/?%#[\]]
   ;
   
   F_UrlInnerUnreserved
   :
  -  [-_.~]
  +    [-_.~]
   ;
   
   fragment
  
positive.code: 
  M_Url_NEWLINE
  :
    F_Newline+ -> type ( NEWLINE ) , popMode
  ;
  
  M_Url_WORD
  :
    F_Url -> type ( WORD ) , popMode
  ;
  
  M_Url_WS
  :
    F_Whitespace+ -> channel ( HIDDEN )
  ;
negative.code:     F_Newline+
  ;
  
  OPEN_BRACKET
  :
      '['
  ;
  
  RANGE
  :
      F_Digit+ '-' F_Digit+
  