anchor.diff:  
          function GetRangeLow:ansistring;
          function GetRangeHigh:ansistring;
  +
  +       function GetPrefilterExpression:ansistring;
  +       function GetPrefilterShortExpression:ansistring;
  +       function GetPrefilterSQLBooleanFullTextExpression:ansistring;
  +       function GetPrefilterSQLExpression(Field:ansistring):ansistring;
   
         published
   
  
positive.code:  RangeHigh:='';
   HasRange:=false;
  
   try
  
    try
  
negative.code:  end;
  end;
  
  function TFLRE.GetPrefilterExpression:ansistring;
  begin
   result:='';
   CriticalSection.Enter;
   try
    if not HasPrefilter then begin
     PrefilterRootNode:=CompilePrefilterTree(AnchoredRootNode);
     PrefilterRootNode:=PrefilterOptimize(PrefilterRootNode);
     HasPrefilter:=true;
    end;
    if assigned(PrefilterRootNode) then begin
     result:=PrefilterRootNode.Expression;
     if (length(result)>0) and (result[1]='(') then begin
      result:=copy(result,2,length(result)-2);
     end;
    end;
   finally
    CriticalSection.Leave;
   end;
  end;
  
  function TFLRE.GetPrefilterShortExpression:ansistring;
  begin
   result:='';
   CriticalSection.Enter;
   try
    if not HasPrefilter then begin
     PrefilterRootNode:=CompilePrefilterTree(AnchoredRootNode);
     PrefilterRootNode:=PrefilterOptimize(PrefilterRootNode);
     HasPrefilter:=true;
    end;
    if assigned(PrefilterRootNode) then begin
     result:=PrefilterRootNode.ShortExpression;
     if (length(result)>0) and (result[1]='(') then begin
      result:=copy(result,2,length(result)-2);
     end;
    end;
    if length(result)=0 then begin
     result:='*';
    end;
   finally
    CriticalSection.Leave;
   end;
  end;
  
  function TFLRE.GetPrefilterSQLBooleanFullTextExpression:ansistring;
  begin
   result:='';
   CriticalSection.Enter;
   try
    if not HasPrefilter then begin
     PrefilterRootNode:=CompilePrefilterTree(AnchoredRootNode);
     PrefilterRootNode:=PrefilterOptimize(PrefilterRootNode);
     HasPrefilter:=true;
    end;
    if assigned(PrefilterRootNode) then begin
     result:=PrefilterRootNode.SQLBooleanFullTextExpression;
     if (length(result)>0) and (result[1]='(') then begin
      result:=copy(result,2,length(result)-2);
     end;
    end;
   finally
    CriticalSection.Leave;
   end;
  end;
  
  function TFLRE.GetPrefilterSQLExpression(Field:ansistring):ansistring;
  begin
   result:='';
   CriticalSection.Enter;
   try
    if not HasPrefilter then begin
     PrefilterRootNode:=CompilePrefilterTree(AnchoredRootNode);
     PrefilterRootNode:=PrefilterOptimize(PrefilterRootNode);
     HasPrefilter:=true;
    end;
    if assigned(PrefilterRootNode) then begin
     if length(trim(String(Field)))=0 then begin
      Field:='textfield';
     end;
     result:=PrefilterRootNode.SQLExpression(Field);
    end;
   finally
    CriticalSection.Leave;
   end;
   if length(result)=0 then begin
    result:='('+Field+' LIKE "%")';
   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;
  