anchor.diff:            result:=NewNode(ntEOT,nil,nil,nil,0);
             inc(SourcePosition);
            end;
  +         'p':begin
  +          inc(SourcePosition);
  +          UnicodeCharClass:=nil;
  +          try
  +           UnicodeCharClass:=TFLREUnicodeCharClass.Create(self);
  +           if not ParseClassEscapeUnicodeProperty(UnicodeCharClass,true) then begin
  +            raise EFLRE.Create('Syntax error');
  +           end;
  +           UnicodeCharClass.Canonicalized:=true;
  +           if assigned(UnicodeCharClass) then begin
  +            result:=NewUnicodeCharClass(UnicodeCharClass);
  +           end else begin
  +            raise EFLRE.Create('Syntax error');
  +           end;
  +          finally
  +           FreeAndNil(UnicodeCharClass);
  +          end;
  +         end;
  +         'P':begin
  +          inc(SourcePosition);
  +          UnicodeCharClass:=nil;
  +          try
  +           UnicodeCharClass:=TFLREUnicodeCharClass.Create(self);
  +           if not ParseClassEscapeUnicodeProperty(UnicodeCharClass,true) then begin
  +            raise EFLRE.Create('Syntax error');
  +           end;
  +           UnicodeCharClass.Invert;
  +           UnicodeCharClass.Inverted:=false;
  +           UnicodeCharClass.Canonicalized:=true;
  +           if assigned(UnicodeCharClass) then begin
  +            result:=NewUnicodeCharClass(UnicodeCharClass);
  +           end else begin
  +            raise EFLRE.Create('Syntax error');
  +           end;
  +          finally
  +           FreeAndNil(UnicodeCharClass);
  +          end;
  +         end;
            else begin
             if (rfUTF8 in Flags) and (byte(ansichar(Source[SourcePosition]))>=$80) then begin
              UnicodeChar:=UTF8CodeUnitGetCharAndIncFallback(Source,SourcePosition);
  
positive.code:         end;
         end else begin
          raise EFLRE.Create('Syntax error');
         end;
        end;
        '[':begin
  
negative.code:      UnicodeCharClass:TFLREUnicodeCharClass;
       OldFlags:TFLREFlags;
       Name:ansistring;
       TemporaryNode:PFLRENode;
   begin
    result:=nil;
    try
  