anchor.diff:   end;
    MatchResult:=nil;
    CountMultiExtractions:=0;
  - SetLength(MultiExtractions,0);
  + //SetLength(MultiExtractions,0);
    CurrentPosition:=StartPosition;
    if CurrentPosition>=0 then begin
     try
  
positive.code:     ThreadLocalStorageInstance.Input:=Input;
      ThreadLocalStorageInstance.InputLength:=InputLength;
      Count:=CountCaptures;
      SetLength(MultiExtractions,0,Count);
      SetLength(MatchResult,Count);
      while (CurrentPosition<InputLength) and (Limit<>0) and SearchMatch(ThreadLocalStorageInstance,MatchResult,CurrentPosition,InputLength,HaveUnanchoredStart) do begin
       Next:=CurrentPosition+1;
  
negative.code:  result:=false;
   MatchResult:=nil;
   CountMultiCaptures:=0;
   //SetLength(MultiCaptures,0);
   CurrentPosition:=StartPosition;
   if CurrentPosition>=0 then begin
    try
  