anchor.diff:  // - It may not start with a special character (like '/' )
   fragment B64LetterBase      : [a-zA-Z0-9];
   fragment B64LetterSpecial   : [+?_/];
  -fragment B64Letter          : [a-zA-Z0-9+?_/];
  -fragment B64FirstChunk
  -    : B64LetterBase B64Letter B64Letter B64Letter
  -    ;
  +fragment B64Letter          : B64LetterBase | B64LetterSpecial;
  +fragment B64FirstChunk      : B64LetterBase B64Letter B64Letter B64Letter;
   
   fragment B64Chunk
       : B64Letter B64Letter B64Letter B64Letter
  
positive.code:     :  [a-zA-Z]+  // No tld has numbers in it
      ;
  
  EMAIL       :        (EMailWord EMailDOT?)+ EMailAT EMailWord ( EMailDOT EMailWord )* EMailDOT EMailTLD;
  
  CURLYBRACEOPEN :     '{'                 ;
  CURLYBRACECLOSE:     '}'                 ;
  BRACEOPEN   :        '('                 ;
  BRACECLOSE  :        ')'                 ;
  BLOCKOPEN   :        '['                 ;
  BLOCKCLOSE  :        ']'                 ;
  SEMICOLON   :        ';'                 ;
  COLON       :        ':'                 ;
  COMMA       :        ','                 ;
  SLASH       :        '/'                 ;
  EQUALS      :        '='                 ;
  MINUS       :        '-'                 ;
  PLUS        :        '+'                 ;
  
  // HexWord is 4 hex digits long
  fragment HexDigit: [a-fA-F0-9];
  fragment HexWord : HexDigit HexDigit HexDigit HexDigit ;
  UUID        :        // 550e8400-e29b-41d4-a716-446655440000
                       HexWord HexWord '-' HexWord '-' HexWord '-' HexWord '-' HexWord HexWord HexWord;
  
  fragment BareHostname:  [a-zA-Z0-9\-_]+ ('.'[a-zA-Z0-9\-_]+)*;
  fragment UrlPath     :  [a-zA-Z0-9\-_~=?&%+.:/#]*;
  fragment BasicURL    :  ('http'|'ftp') 's'? '://' BareHostname UrlPath ;
  fragment HTMLURL     :  '<a href="' BasicURL '">'~[<]+'</a>';
  URL         :        ( '<'? ('www.'BareHostname UrlPath|BasicURL) '>'? | HTMLURL | 'index.htm' UrlPath);
  
  GIBBERISH   : '@'(~[ ;])*;
  
  // A version is a WORD with at least 1 number in it (and that can contain a '-').
  VERSION
  
negative.code: 
  SPACE :       (' '|'\t'|'+') -> skip;
  
  fragment UserAgent
      : [Uu][Ss][Ee][Rr]'-'*[Aa][Gg][Ee][Nn][Tt]
      ;
  
  // Specialtype of leading garbage (which actually happens)
  USERAGENT1   : '-'* UserAgent ' '*(COLON|EQUALS|CURLYBRACEOPEN)' '* -> skip;
  USERAGENT2   : '\'' UserAgent '\'' COLON -> skip;
  
  fragment EMailLetter
      : [a-zA-Z0-9_+-]
  