anchor.diff:   inherited Destroy;
   end;
   
  +function TFLRE.NewNode(const NodeType:longint;const Left,Right,Extra:PFLRENode;const Value:longint):PFLRENode;
  +begin
  + GetMem(result,SizeOf(TFLRENode));
  + FillChar(result^,SizeOf(TFLRENode),#0);
  + result^.NodeType:=NodeType;
  + result^.Left:=Left;
  + result^.Right:=Right;
  + result^.Extra:=Extra;
  + result^.Value:=Value;
  + result^.Index:=Nodes.Add(result);
  +end;
  +
   procedure TFLRE.FreeNode(var Node:PFLRENode);
   begin
    if assigned(Node) then begin
  
positive.code:       opBRK=9;
        opNBRK=10;
  
        // DFA result return values
        DFAError=-1;
        DFAFail=0;
  
negative.code:          if ((SourcePosition+1)<=SourceLength) and
              (Source[SourcePosition+0] in ['0'..'9','a'..'f','A'..'F']) and
              (Source[SourcePosition+1] in ['0'..'9','a'..'f','A'..'F']) then begin
            result:=NewNode(ntCHAR,nil,nil,nil,0);
            result^.CharClass:=[ansichar(byte(longword((Hex2Value(Source[SourcePosition+0]) shl 8) or Hex2Value(Source[SourcePosition+1]))))];
            inc(SourcePosition,2);
           end else begin
  