anchor.diff:          end;
         'h':
           begin
  +          //don't allow word-char before
  +          if (i>1) and IsCharWord(AStr[i-1], cDefaultNonWordChars) then Continue;
  +
             //find hsl(...), hsla(...)
             if (AStr[i+1]='s') and
  -            (AStr[i+2]='l') and
  -            ((i=1) or not IsCharWord(AStr[i-1], cDefaultNonWordChars)) //word boundary
  +            (AStr[i+2]='l')
             then
             begin
               NColor:= TATHtmlColorParserW.ParseFunctionHSL(AStr, i, NLen);
  
positive.code:         end;
        'r':
          begin
            //find rgb(...), rgba(...)
            if (AStr[i+1]='g') and
              (AStr[i+2]='b') and
              ((i=1) or not IsCharWord(AStr[i-1], cDefaultNonWordChars)) //word boundary
            then
            begin
              NColor:= TATHtmlColorParserW.ParseFunctionRGB(AStr, i, NLen);
  
negative.code:     case AStr[i] of
        '#':
          begin
            //don't allow word-char before
            if (i>1) and IsCharWord(AStr[i-1], cDefaultNonWordChars) then Continue;
  
            //find #rgb, #rrggbb
            if IsCharHexDigit(AStr[i+1]) then
            begin
  