anchor.diff:  PctEncoded: '%' HEX_DIGIT HEX_DIGIT;
              
   ParamUnreserved: '[' 
  -                        | ']' 
  -                        | '/' 
  -                        | ':' 
  -                        | '&' 
  -                        | '+' 
  -                        | '$'
  +               | ']' 
                           ;
                  
   PhoneDigit: DIGIT 
  
positive.code:           ;
  
  fragment PhoneDigitHex: HEX_DIGIT 
                        | '*' 
                        | '#' 
                        | VisualSeparator
                        ;
                
  fragment VisualSeparator: '-' 
                            | '.' 
                            | '(' 
                            | ')'
                            ;
  
  Reserved: ';' 
          | '/' 
          | '?' 
          | ':' 
          | '@' 
          | '&' 
          | '=' 
          | '+' 
          | '$' 
          | ','
          ;
  
      
  ALPHA: [a-zA-Z];
  DIGIT: [0-9];
  fragment HEX_DIGIT: [A-F0-9];
negative.code:             
  localNumber: localDigits=LocalNumberDigits (extension | isdnSubaddress)? phoneContext parameter*;
  
  isdnSubaddress: ';isub=' isub=(Reserved | SPECIAL | ALPHA | DIGIT | Mark | DASH | PctEncoded)+;
  
  extension: ';ext=' ext=PhoneDigit+;
  
  