I can see
sanitize_user() with strict argument as true, which means uppercase letters are not allowed too.
In source code, I found this comment
// If strict, reduce to ASCII for max portability. if ( $strict ) $username = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $username );
I would like to know how does this affect portability?