anchor.diff:        for IndexX:= IndexXEnd downto IndexXBegin do
         begin
           ch:= S[IndexX+1];
  -        if (ch=CharFrom) and (EditorGetTokenKind(Ed, IndexX, IndexY)=TokenKind) then
  +        if (ch=CharFrom) and (EditorGetTokenKind(Ed, IndexX, IndexY)=cTokenKindOther) then
             Inc(Level)
           else
  -        if (ch=CharTo) and (EditorGetTokenKind(Ed, IndexX, IndexY)=TokenKind) then
  +        if (ch=CharTo) and (EditorGetTokenKind(Ed, IndexX, IndexY)=cTokenKindOther) then
           begin
             if Level>0 then
               Dec(Level)
  
positive.code:       for IndexX:= IndexXBegin to IndexXEnd do
        begin
          ch:= S[IndexX+1];
          if (ch=CharFrom) and (EditorGetTokenKind(Ed, IndexX, IndexY)=TokenKind) then
            Inc(Level)
          else
          if (ch=CharTo) and (EditorGetTokenKind(Ed, IndexX, IndexY)=TokenKind) then
          begin
            if Level>0 then
              Dec(Level)
  
negative.code:       EditorBracket_GetCharKind(ch, Kind, ch2);
        if Kind=bracketUnknown then Continue;
  
        //ignore brackets in comments/strings, because of constants '{', '(' etc
        if EditorGetTokenKind(Ed, iChar, iLine)<>cTokenKindOther then Continue;
  
        if Kind=bracketClosing then
        begin
  