anchor.diff:      UnicodeCharClass.AddChar($7f,IgnoreCase);
      end;
      UnicodeCharClass.Canonicalized:=true;
  -  end else if Name='digits' then begin
  +  end else if (WithLowerCase and (LowerCaseName='digits')) or
  +              ((not WithLowerCase) and (Name='Digits')) then begin
      if rfUTF8 in Flags then begin
       UnicodeCharClass.AddUnicodeCategory(1 shl FLREUnicodeCategoryNd,IgnoreCase);
      end else begin
       UnicodeCharClass.AddRange(ord('0'),ord('9'),IgnoreCase);
      end;
      UnicodeCharClass.Canonicalized:=true;
  -  end else if Name='graph' then begin
  +  end else if (WithLowerCase and (LowerCaseName='graph')) or
  +              ((not WithLowerCase) and (Name='Graph')) then begin
      if rfUTF8 in Flags then begin
       UnicodeCharClass.AddUnicodeCategory((1 shl FLREUnicodeCategoryZs) or (1 shl FLREUnicodeCategoryZl) or (1 shl FLREUnicodeCategoryZp) or (1 shl FLREUnicodeCategoryCc) or (1 shl FLREUnicodeCategoryCf) or (1 shl FLREUnicodeCategoryCo) or (1 shl FLREUnicodeCategoryCs) or (1 shl FLREUnicodeCategoryCn),IgnoreCase);
      end else begin
       UnicodeCharClass.AddRange($21,$7e,IgnoreCase);
      end;
      UnicodeCharClass.Canonicalized:=true;
  -  end else if Name='inbasiclatin' then begin
  +  end else if (WithLowerCase and (LowerCaseName='inbasiclatin')) or
  +              ((not WithLowerCase) and (Name='InBasicLatin')) then begin
      UnicodeCharClass.AddRange($00,$7f,IgnoreCase);
      UnicodeCharClass.Canonicalized:=true;
  -  end else if (Name='inno_block') or (Name='isno_block') or (Name='innoblock') or (Name='isnoblock') then begin
  +  end else if (WithLowerCase and ((LowerCaseName='inno_block') or (LowerCaseName='isno_block') or (LowerCaseName='innoblock') or (LowerCaseName='isnoblock'))) or
  +              ((not WithLowerCase) and ((Name='InNo_Block') or (Name='IsNo_Block') or (Name='InNoBlock') or (Name='IsNoBlock'))) then begin
      for i:=0 to FLREUnicodeBlockCount-1 do begin
       UnicodeCharClass.AddUnicodeBlock(i,false);
      end;
  
positive.code:    end;
    end;
    begin
     f:=UnicodeScriptHashMap[Name];
     if f>0 then begin
      UnicodeCharClass.AddUnicodeScript(f,IgnoreCase);
      UnicodeCharClass.Canonicalized:=true;
  
negative.code:      Node:=nil;
      end;
      if not assigned(Node) then begin
       Node:=NewEmptyMatch;
      end;
      SkipFreeSpacingWhiteSpace;
      if assigned(result) then begin
  