anchor.diff:  begin
    result:=PtrMatch(PFLRERawByteChar(@Input[1]),length(Input),Captures,StartPosition-1);
    for Counter:=0 to length(Captures)-1 do begin
  -  if Captures[Counter].Length>0 then begin
  -   inc(Captures[Counter].Start);
  -  end;
  +  inc(Captures[Counter].Start);
     if (rfMULTIMATCH in Flags) and (Counter=0) then begin
      break;
     end;
  
positive.code: begin
   result:=PtrMatchNext(PFLRERawByteChar(@Input[1]),length(Input),Captures,StartPosition-1);
   for Counter:=0 to length(Captures)-1 do begin
    if Captures[Counter].Length>0 then begin
     inc(Captures[Counter].Start);
    end;
    if (rfMULTIMATCH in Flags) and (Counter=0) then begin
     break;
    end;
  
negative.code:  result:=PtrMatchAll(PFLRERawByteChar(@Input[1]),length(Input),MultiCaptures,StartPosition-1,Limit);
   for Counter:=0 to length(MultiCaptures)-1 do begin
    for SubCounter:=0 to length(MultiCaptures[Counter])-1 do begin
     inc(MultiCaptures[Counter,SubCounter].Start);
     if (rfMULTIMATCH in Flags) and (SubCounter=0) then begin
      break;
     end;
  