If we try to use ToLowerCase or ToUpperCase with Cyrillic characters, like:
In[22]:= ToLowerCase["???? ABCD"]
Out[22]= "???? abcd"
The result is not the expected. Also for some reson :
In[23]:= UpperCaseQ["?"]
Out[23]= False
I used to overcome that with a new function:
bgAlphabetLower = Delete[CharacterRange["?", "?"], {{-3}, {-5}}];
bgAlphabetUpper = Delete[CharacterRange["?", "?"], {{-3}, {-5}}];
ruleSetBGUpperToLower = Table[bgAlphabetUpper[[i]] -> bgAlphabetLower[[i]], {i, 30}];
bgUpperToLower[s_String] := StringReplace[s, ruleSetBGUpperToLower];
But i guess it could be some core functionality that could be used as well.
Any suggestions / comments?