anchor.diff:         function MatchAll(const Input:ansistring;var Captures:TFLREMultiCaptures;const StartPosition:longint=1;Limit:longint=-1):boolean;
          function ReplaceAll(const AInput,AReplacement:ansistring;const StartPosition:longint=1;Limit:longint=-1):ansistring;
   
  -       function GetRangeLow:ansistring;
  -       function GetRangeHigh:ansistring;
  +       function GetRange(var LowRange,HighRange:ansistring):boolean;
   
          function DumpRegularExpression:ansistring;
   
  
positive.code:  end;
  end;
  
  procedure InitializeFLRE;
  const FLRESignature:ansistring=' FLRE - yet another efficient, principled regular expression library - Version '+FLREVersionStr+' - Copyright (C) 2015, Benjamin ''BeRo'' Rosseaux - benjamin@rosseaux.com - http://www.rosseaux.com ';
   procedure InitializeUTF8DFA;
   type TAnsiCharSet=set of ansichar;
  {$ifdef FLREStrictUTF8}
  
negative.code:  result:=PtrReplaceAll(pansichar(@AInput[1]),length(AInput),pansichar(@AReplacement[1]),length(AReplacement),StartPosition-1,Limit);
  end;
  
  function TFLRE.GetRange(var LowRange,HighRange:ansistring):boolean;
  begin
   result:=false;
   CriticalSection.Enter;
   try
    if not HasRange then begin
     CompileRange;
    end;
    if HasRange then begin
     LowRange:=RangeLow;
     HighRange:=RangeHigh;
     result:=true;
    end;
   finally
    CriticalSection.Leave;
   end;
  