This may or may not be relevant, but one thing about lower case generally:
If you're doing string matching via Casefold or NFKC_Casefold [a], characters from both the needle and the haystack are converted to lowercase (with exceptions for algorithm stability reasons) before being compared.
Why lower case and not upper case? Theoretically, the choice is arbitrary, but given the distribution of lower-case vs upper-case characters in most texts, you can use the fact that lower case occurs more often to optimize your algorithms by skipping the case conversion for most characters.
a: https://www.unicode.org/versions/Unicode17.0.0/core-spec/cha...