anchor.diff:  
   implementation
   
  +(*
   function SReplaceParts(const S: string; const Decode: array of TStringReplacePart): string;
   var
     i, j: Integer;
  
positive.code:   ATSynEdit_RegExpr,
    ec_RegExpr;
  
  type
    TStringReplacePart = record
      SFrom, STo: string;
    end;
  
  function STextWholeWordSelection(const S: UnicodeString; OffsetBegin, OffsetEnd: integer;
    const ANonWordChars: UnicodeString): boolean;
  
negative.code:     DoDecode := False;
      for j := Low(Decode) to High(Decode) do
        with Decode[j] do
          if strlcomp(PChar(SFrom), @S[i], Length(SFrom)) = 0 then
          begin
            DoDecode := True;
            Result := Result + STo;
  