anchor.diff:            inc(SourcePosition);
             UnicodeCharClass:=nil;
             try
  -           UnicodeCharClass:=TFLREUnicodeCharClass.Create(self);
  +           UnicodeCharClass:=TFLREUnicodeCharClass.Create;
              if not ParseClassEscapeUnicodeProperty(UnicodeCharClass,true) then begin
               raise EFLRE.Create('Syntax error');
              end;
  
positive.code:   result:=nil;
    try
     IgnoreCase:=CanBeAlreadyCanonicalized and (rfCASEINSENSITIVE in Flags);
     result:=TFLREUnicodeCharClass.Create(self);
     if (SourcePosition<=SourceLength) and (Source[SourcePosition] in ['0'..'9']) then begin
      i:=0;
      while (SourcePosition<=SourceLength) and (Source[SourcePosition] in ['0'..'9']) do begin
  
negative.code:     AddRange(ucrWORDS,l,h);
     end;
     SetLength(UnicodeCharRangeClasses[ucrWORDS],Count);
    end;
    begin
     LowerUpperCaseUnicodeCharClass:=TFLREUnicodeCharClass.Create;
     Count:=0;
     l:=$ffffffff;
     h:=0;
     for i:=0 to $10ffff do begin
      cl:=UnicodeToLower(i);
      cu:=UnicodeToUpper(i);
      if (cl<>cu) or (cl<>i) or (cu<>i) then begin
       if l<=h then begin
        if (h+1)=i then begin
         h:=i;
        end else begin
         LowerUpperCaseUnicodeCharClass.AddRange(l,h);
         l:=i;
         h:=i;
        end;
       end else begin
        l:=i;
        h:=i;
       end;
      end;
     end;
     if l<=h then begin
      LowerUpperCaseUnicodeCharClass.AddRange(l,h);
     end;
    end;
    begin
     Count:=0;
  