I was considering using a regex, but those seem to be the first clues I've lost
While I'm processing names in a formulaic manner, I actually know how they write them at least when using some extended version of the Roman alphabet (some of my students have names that are transliterated from Arabic, Serbian, and Macedonian). The names were upcased by the software from the system producing the reports.
Information about American English usage here and here. Floating point issues? Please read this before posting. — emc