anchor.diff:  
         if Result then
         begin
  -        if AAndSelect then
  -        begin
  -          if bForwardSel then
  -            Ed.Carets.Add(
  -              Finder.MatchEdEnd.X,
  -              Finder.MatchEdEnd.Y,
  -              Finder.MatchEdPos.X,
  -              Finder.MatchEdPos.Y
  -              )
  -          else
  -            Ed.Carets.Add(
  -              Finder.MatchEdPos.X,
  -              Finder.MatchEdPos.Y,
  -              Finder.MatchEdEnd.X,
  -              Finder.MatchEdEnd.Y
  -              );
  -          //sort carets: maybe we added caret in the middle
  -          Ed.Carets.Sort;
  -        end;
  +        if bForwardSel then
  +          Ed.Carets.Add(
  +            Finder.MatchEdEnd.X,
  +            Finder.MatchEdEnd.Y,
  +            Finder.MatchEdPos.X,
  +            Finder.MatchEdPos.Y
  +            )
  +        else
  +          Ed.Carets.Add(
  +            Finder.MatchEdPos.X,
  +            Finder.MatchEdPos.Y,
  +            Finder.MatchEdEnd.X,
  +            Finder.MatchEdEnd.Y
  +            );
  +        //sort carets: maybe we added caret in the middle
  +        Ed.Carets.Sort;
   
           if Finder.MatchEdEnd.Y=Finder.MatchEdPos.Y then
             NSelLen:= Finder.MatchEdEnd.X-Finder.MatchEdPos.X
  
positive.code: 
  function EditorExpandSelectionToWord(Ed: TATSynEdit;
    AFinderResultCallback: TATEditorFinderCallback;
    AAndSelect, AWholeWords: boolean): boolean;
  var
    Caret: TATCaretItem;
    Finder: TATEditorFinder;
    MarkerPtr: PATMarkerItem;
    X1, Y1, X2, Y2, NSelLen: integer;
    bSel, bForwardSel: boolean;
    bWholeWord: boolean;
    sText: UnicodeString;
  
negative.code:       Ed.Markers.Delete(iMarker);
        Break
      end;
    end;
  
    //skip last (last made, not last in text) selection
    if not AAddOrSkip then
    begin
      NCaret:= Ed.Carets.FindCaretBeforePos(X1, Y1, true);
      if NCaret>=0 then
        Ed.Carets.Delete(NCaret);
    end;
  
    if not bSel then
  