On 30/06/2014 09:22, Joseph Wright wrote:
> To support case-changing operations in expl3, the team some time ago
> added an experimental pair
> \tl_expandable_uppercase:n/\tl_expandable_lowercase:n as alternatives to
> \tl_to_uppercase:n/\tl_to_lowercase:n. While the expandable operations
> are useful, there are issues both in terms of naming (solvable) and
> functionality (more complex). In particular, they cover only the ASCII
> range and do not offer some of the context-sensitive case changing that
> is required for languages other than English.
> In order to address this, we have now added a new set of experimental
> functions to l3candidates:
>  - \tl_upper_case:n(n)
>  - \tl_lower_case:n(n)
>  - \tl_mixed_case:n(n)

A question raised elsewhere
(http://chat.stackexchange.com/transcript/message/16351207#16351207) is
of course whether "tl" is the right place for such functions at all.
It's arguable that they can be regarded a "text" functions, so perhaps a
"text manipulation" module would be a better location. That does not of
course preclude discussing the detail of how they should also work, but
may be worth consideration. Feedback here also welcome!
Joseph Wright