anchor.diff:  
   const FLREVersion=$00000004;
   
  -      FLREVersionString='1.00.2016.02.05.07.06.0000';
  +      FLREVersionString='1.00.2016.02.05.08.23.0000';
   
         FLREMaxPrefixCharClasses=32;
   
  
positive.code: 
      CompilePrefixPattern;
  
      if CountPrefixCharClasses=1 then begin
       FirstPrefixCharClassSize:=TotalCount;
       case FirstPrefixCharClassSize of
  
negative.code:   result:=PtrPosChar(SearchChar0,Text,TextLength,Index);
    if result<0 then begin
     exit;
    end else if result>=(TextLength-1) then begin
     break;
    end else if Text[result+1]=SearchChar1 then begin
     exit;
    end else begin
     Index:=result+1;
    end;
   end;
   result:=-1;
  end;
  
  function PtrPosCharSetOf2Of2(const SearchChar0,SearchChar1:TFLRERawByteChar;const Text:PFLRERawByteChar;TextLength:longint;Offset:longint=0):ptrint;
  var Index:longint;
      CurrentChar:TFLRERawByteChar;
  begin
   Index:=Offset;
   while Index<(TextLength-1) do begin
    result:=PtrPosCharSetOf2(SearchChar0,SearchChar1,Text,TextLength,Index);
    if result<0 then begin
     exit;
    end else if result>=(TextLength-1) then begin
     break;
    end else if (Text[result+1]=SearchChar0) or (Text[result+1]=SearchChar1) then begin
     exit;
    end else begin
     Index:=result+1;
    end;
   end;
   result:=-1;
  end;
  
  function PtrPosCharSetOf2Of3(const SearchChar0,SearchChar1:TFLRERawByteChar;const Text:PFLRERawByteChar;TextLength:longint;Offset:longint=0):ptrint;
  var Index:longint;
      CurrentChar:TFLRERawByteChar;
  begin
   Index:=Offset;
   while Index<(TextLength-2) do begin
    result:=PtrPosCharSetOf2(SearchChar0,SearchChar1,Text,TextLength,Index);
    if result<0 then begin
     exit;
    end else if result>=(TextLength-2) then begin
     break;
    end else if ((Text[result+1]=SearchChar0) or (Text[result+1]=SearchChar1)) and
                ((Text[result+2]=SearchChar0) or (Text[result+2]=SearchChar1)) then begin
     exit;
    end else begin
     Index:=result+1;
    end;
   end;
   result:=-1;
  end;
  
  function PtrPosCharSetOf2Of4(const SearchChar0,SearchChar1:TFLRERawByteChar;const Text:PFLRERawByteChar;TextLength:longint;Offset:longint=0):ptrint;
  var Index:longint;
      CurrentChar:TFLRERawByteChar;
  begin
   Index:=Offset;
   while Index<(TextLength-3) do begin
    result:=PtrPosCharSetOf2(SearchChar0,SearchChar1,Text,TextLength,Index);
    if result<0 then begin
     exit;
    end else if result>=(TextLength-3) then begin
     break;
    end else if ((Text[result+1]=SearchChar0) or (Text[result+1]=SearchChar1)) and
                ((Text[result+2]=SearchChar0) or (Text[result+2]=SearchChar1)) and
                ((Text[result+3]=SearchChar0) or (Text[result+3]=SearchChar1)) then begin
     exit;
    end else begin
     Index:=result+1;
    end;
   end;
   result:=-1;
  