anchor.diff:         function PtrMatch(const Input:pointer;const InputLength:longint;var Captures:TFLRECaptures;const StartPosition:longint=0):boolean;
          function PtrMatchNext(const Input:pointer;const InputLength:longint;var Captures:TFLRECaptures;const StartPosition:longint=0):boolean;
          function PtrMatchAll(const Input:pointer;const InputLength:longint;var MultiCaptures:TFLREMultiCaptures;const StartPosition:longint=0;Limit:longint=-1):boolean;
  -       function PtrExtractAll(const Input:pointer;const InputLength:longint;var MultiExtractions:TFLREMultiExtractions;const StartPosition:longint=0;Limit:longint=-1):boolean;
  +       function PtrExtractAll(const Input:pointer;const InputLength:longint;var MultiExtractions:TFLREMultiStrings;const StartPosition:longint=0;Limit:longint=-1):boolean;
          function PtrReplaceAll(const Input:pointer;const InputLength:longint;const Replacement:pointer;const ReplacementLength:longint;const StartPosition:longint=0;Limit:longint=-1):TFLRERawByteString;
          function PtrTest(const Input:pointer;const InputLength:longint;const StartPosition:longint=0):boolean;
          function PtrFind(const Input:pointer;const InputLength:longint;const StartPosition:longint=0):longint;
  
positive.code:  end;
  end;
  
  function TFLRE.ExtractAll(const Input:TFLRERawByteString;var MultiExtractions:TFLREMultiExtractions;const StartPosition:longint=1;Limit:longint=-1):boolean;
  begin
   result:=PtrExtractAll(pansichar(@Input[1]),length(Input),MultiExtractions,StartPosition-1,Limit);
  end;
  
negative.code:  end;
  end;
  
  function TFLRE.PtrExtractAll(const Input:pointer;const InputLength:longint;var MultiExtractions:TFLREMultiStrings;const StartPosition:longint=0;Limit:longint=-1):boolean;
  var CurrentPosition,CountMultiExtractions,Next,Index,Count:longint;
      MatchResult:TFLRECaptures;
      ThreadLocalStorageInstance:TFLREThreadLocalStorageInstance;
  