anchor.diff:  
     if Reversed then begin
   
  +   if assigned(State) and ((State^.Flags and sfDFAMatchWins)<>0) then begin
  +    MatchEnd:=Position+1;
  +    result:=DFAMatch;
  +   end;
  +
      for Position:=StartPosition downto UntilExcludingPosition do begin
       CurrentChar:=byte(ansichar(LocalInput[Position]));
       LastState:=State;
  
positive.code:     if (State^.Flags and sfDFAMatchWins)<>0 then begin
       MatchEnd:=Position-1;
       result:=DFAMatch;
       if MatchMode=mmMultiMatch then begin
        for Index:=0 to State^.CountInstructions do begin
         Instruction:=State^.Instructions[Index];
         if assigned(Instruction) and ((Instruction^.IDandOpcode and $ff)=opMATCH) then begin
          if (Instruction.Value>=0) and (Instruction.Value<Instance.CountMultiSubMatches) then begin
  
negative.code: 
    end else begin
  
     if assigned(State) and ((State^.Flags and sfDFAMatchWins)<>0) then begin
      MatchEnd:=Position-1;
      result:=DFAMatch;
     end;
  
     for Position:=StartPosition to UntilExcludingPosition-1 do begin
      CurrentChar:=byte(ansichar(LocalInput[Position]));
      LastState:=State;
  