anchor.diff:       exit;
       end;
      end;
  -  end;
  - end;
  +   for i:=0 to a.CountIndirectInstructions-1 do begin
  +    if a.IndirectInstructions[i]<>b.IndirectInstructions[i] then begin
  +     result:=false;
  +     exit;
  +    end;
  +   end;
  +  end;
  + end;
  +end;
  +
  +function IsInstructionGreedy(Instruction:PFLREInstruction):boolean;
  +begin
  + result:=assigned(Instruction^.Next) and ((Instruction^.Next^.IDandOpcode and $ff) in [opSINGLECHAR,opCHAR,opANY]);
   end;
   
   constructor TFLREDFAStateHashMap.Create;
  
positive.code:       public
         Instance:TFLRE;
         ThreadLocalStorageInstance:TFLREThreadLocalStorageInstance;
         SearchLongest:longbool;
         WorkSubMatches:TFLREOnePassNFASubMatches;
         MatchSubMatches:TFLREOnePassNFASubMatches;
         constructor Create(const AThreadLocalStorageInstance:TFLREThreadLocalStorageInstance);
  
negative.code:      DFAFast:=false;
       if (Node^.Value and sfEmptyBeginText)<>0 then begin
        BeginningAnchor:=true;
       end;
       if (Node^.Value and sfEmptyEndText)<>0 then begin
        EndingAnchor:=true;
       end;
      end;
      ntLOOKBEHINDNEGATIVE,ntLOOKBEHINDPOSITIVE,ntLOOKAHEADNEGATIVE,ntLOOKAHEADPOSITIVE:begin
  