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