anchor.diff:        carfMULTIMATCH=1 shl 7;
         carfUTF8=1 shl 8;
         carfDELIMITERS=1 shl 9;
  -      carfSAFE=1 shl 10;
  -      carfFAST=1 shl 11;
   
   type EFLRE=class(Exception);
   
  
positive.code:   BitStateNFAReady:=(CountForwardInstructions>0) and (CountForwardInstructions<512);
  
    BeginningWildcardLoop:=BeginningJump and BeginningSplit and BeginningWildcard;
    if rfSAFE in Flags then begin
     DoUnanchoredStart:=false;
    end else if rfFAST in Flags then begin
     DoUnanchoredStart:=not BeginningAnchor;
    end else begin
     DoUnanchoredStart:=(FixedStringLength=0) and (CountObviousPrefixCharClasses<CountPrefixCharClasses) and not BeginningAnchor;
    end;
  
   finally
   end;
  
negative.code:      end;
      end;
     end;
     if SearchMatch(ThreadLocalStorageInstance,Captures,CurrentPosition,InputLength,DoUnanchoredStart) then begin
      result:=true;
      break;
     end;
     inc(CurrentPosition);
    until (CurrentPosition>=InputLength) or (BeginningWildcardLoop or BeginningAnchor or DoUnanchoredStart);
   end;
  end;
  
  