In TeX, each of the 256 bytes has an associated
\lccode and an
\uccode, integers in the range [0,255] which indicate among other things how
\uppercase act. There are of course a bunch of other numbers (mathcode, and catcode for instance), but I am focusing here on case-changing codes.
A look at the TeXbook tells me about the following uses of the
<general text>turns each character token in the argument into a character token with the same category code, but a character code equal to the
\lccodeof the original character code, unless the
\lccodeis zero, in which case, the original character code is retained.
<general text>behaves in the same way, using the
When hyphenating, TeX takes whatever characters reached its stomach (so either from tokens with category code 11 or 12, or from chardef'd tokens, or char), and defines a "letter" to be a character with non-zero
\lccode. A letter is lowercase if its
\lccodeis equal to its character code.
Is this all? In particular, does TeX use the
\uccode for any purpose other than the
\uppercase primitive? What about other engines, pdfTeX, XeTeX, and LuaTeX?