This is what I found at Wikipedia (without any reference, though):
Most versions of
tr
, includingGNU tr
and classic Unixtr
, operate on single-byte characters and are not Unicode compliant. An exception is the Heirloom Toolchest implementation, which provides basic Unicode support.
Also, this is old but related.
As I mentioned in the comment, sed
seems to work (GNU sed
, at least):
$ echo 'СТЭК' | sed 's/[[:upper:]]*/\L&/'
стэк