anchor.diff:     ThreadLocalStorageInstances:=ThreadLocalStorageInstance;
     end;
    finally
  -  ThreadLocalStorageInstanceCriticalSection.Leave;
  +  ThreadLocalStorageInstanceManagerCriticalSection.Leave;
    end;
    try
     ThreadLocalStorageInstance.Input:=AInput;
  
positive.code:    break;
    until true;
   finally
    ThreadLocalStorageInstanceCriticalSection.Enter;
    try
     ThreadLocalStorageInstance.FreeNext:=FreeThreadLocalStorageInstances;
     FreeThreadLocalStorageInstances:=ThreadLocalStorageInstance;
    finally
     ThreadLocalStorageInstanceCriticalSection.Leave;
    end;
   end;
  end;
  
negative.code:        function IsWordChar(const CharValue:longword):boolean; {$ifdef caninline}inline;{$endif}
  
         function SearchMatch(const AInput:pointer;const AInputLength:longint;var Captures:TFLRECaptures;StartPosition,UntilExcludingPosition:longint;UnanchoredStart:boolean):boolean;
  
        public
  
         constructor Create(const ARegularExpression:ansistring;const AFlags:TFLREFlags=[]);
         destructor Destroy; override;
  
         function PtrMatch(const Input:pointer;const InputLength:longint;var Captures:TFLRECaptures;const StartPosition:longint=0):boolean;
         function PtrMatchNext(const Input:pointer;const InputLength:longint;var Captures:TFLRECaptures;const StartPosition:longint=0):boolean;
         function PtrMatchAll(const Input:pointer;const InputLength:longint;var Captures:TFLREMultiCaptures;const StartPosition:longint=0;Limit:longint=-1):boolean;
         function PtrReplaceAll(const Input:pointer;const InputLength:longint;const AReplacement:pointer;const AReplacementLength:longint;const StartPosition:longint=0;Limit:longint=-1):ansistring;
  
         function Match(const Input:ansistring;var Captures:TFLRECaptures;const StartPosition:longint=1):boolean;
         function MatchNext(const Input:ansistring;var Captures:TFLRECaptures;const StartPosition:longint=1):boolean;
         function MatchAll(const Input:ansistring;var Captures:TFLREMultiCaptures;const StartPosition:longint=1;Limit:longint=-1):boolean;
         function ReplaceAll(const AInput,AReplacement:ansistring;const StartPosition:longint=1;Limit:longint=-1):ansistring;
  
        published
  
         property NamedGroups:TStringList read NamedGroupStringList;
         property NamedGroupIndices:TFLREStringIntegerPairHashMap read NamedGroupStringIntegerPairHashMap;
  
       end;
  
  implementation
  