anchor.diff:    WorkQueues[0]:=nil;
     WorkQueues[1]:=nil;
    end else begin
  -  WorkQueues[0]:=TFLREDFAWorkQueue.Create(Max(Instance.CountForwardInstructions,Instance.CountBackwardInstructions)*3);
  -  WorkQueues[1]:=TFLREDFAWorkQueue.Create(Max(Instance.CountForwardInstructions,Instance.CountBackwardInstructions)*3);
  -  SetLength(QueueInstructionArray,Max(Instance.CountForwardInstructions,Instance.CountBackwardInstructions)*3);
  -  SetLength(QueueStack,Max(Instance.CountForwardInstructions,Instance.CountBackwardInstructions)*3);
  +  if NeedMark then begin
  +   WorkQueues[0]:=TFLREDFAWorkQueue.Create(CountInstructions*3);
  +   WorkQueues[1]:=TFLREDFAWorkQueue.Create(CountInstructions*3);
  +   SetLength(QueueInstructionArray,CountInstructions*3);
  +   SetLength(QueueStack,CountInstructions*3);
  +  end else begin
  +   WorkQueues[0]:=TFLREDFAWorkQueue.Create(CountInstructions*2);
  +   WorkQueues[1]:=TFLREDFAWorkQueue.Create(CountInstructions*2);
  +   SetLength(QueueInstructionArray,CountInstructions*2);
  +   SetLength(QueueStack,CountInstructions*2);
  +  end;
    end;
   
   end;
  
positive.code: 
         ThreadLocalStorageInstance:TFLREThreadLocalStorageInstance;
  
         MatchMode:TFLREMatchMode;
  
         Reversed:longbool;
  
  
negative.code:  Instance:=ThreadLocalStorageInstance.Instance;
  
   if AReversed then begin
  
    CountInstructions:=Instance.CountBackwardInstructions;
  
    MatchMode:=mmLongestMatch;
  
   end else begin
  
    CountInstructions:=Instance.CountForwardInstructions;
  
    MatchMode:=ThreadLocalStorageInstance.MatchMode;
  
   end;
  
   NeedMark:=MatchMode=mmLongestMatch;
  
   Reversed:=AReversed;
  
  