anchor.diff:    result:=Node;
     result^.NodeType:=ntSTAR;
    end else begin
  -  result:=NewNode(ntSTAR,Node,nil,nil,Kind);
  +  result:=NewNode(ntSTAR,StarDenull(Node),nil,nil,Kind);
    end;
   end;
   
  
positive.code:        function AreNodesEqual(NodeA,NodeB:PFLRENode):boolean;
         function AreNodesEqualSafe(NodeA,NodeB:PFLRENode):boolean;
  
         function Concat(NodeLeft,NodeRight:PFLRENode):PFLRENode;
  
         function NewAlt(NodeLeft,NodeRight:PFLRENode):PFLRENode;
         function NewPlus(Node:PFLRENode;Kind:longint):PFLRENode;
         function NewStar(Node:PFLRENode;Kind:longint):PFLRENode;
         function NewQuest(Node:PFLRENode;Kind:longint):PFLRENode;
  
         function IsStarNullable(Node:PFLRENode):boolean;
         function StarDenull(Node:PFLRENode):PFLRENode;
  
         function OptimizeNode(NodeEx:PPFLRENode):boolean;
  
  
negative.code:   result^.NodeType:=ntSTAR;
   end else begin
    result:=NewNode(ntQUEST,Node,nil,nil,Kind);
   end;
  end;
  
  