Select UPPER CASE list items with spaces and punctuation
The following code might not be quite fast but it takes into account foreign languages.
list = {"Bob Jones", "ACME-SYSTEMS", "John Smith", "FUTURETECH123",
"Sally Jones", "CITY SCHOOL", "Jane Black", "CONSULTANT",
"Max Speed", "A.B. CORP", "TЯUMP", "яUSSIam"};
Select[list, ToUpperCase[#] === # &]
You can see it catches the Russian TЯUMP.
UPDATE
Apparently, Russians cannot be caught. In the example below, an accented letter á (as those used in Spanish) is processed by the system but the Russian one is quite stealthy.
string = "áа";
ToCharacterCode[string]
ToUpperCase[string]
(*
{225, 1072}
"Áа"
*)
The simplest regex that I can think of that does what the OP asks is the following:
list // Pick[#, StringContainsQ[#, RegularExpression["^[^a-z]+$"]]] &
"ACME-SYSTEMS", "FUTURETECH123", "CITY SCHOOL", "CONSULTANT", "A.B. \ CORP"}
For the cases discussed by Hector, maybe:
Join[list, {"TЯUMP", "яUSSIam", "ЯЯ", "TЯЯUMP", "Яя", "TЯяUMP"}]
// Pick[#, StringContainsQ[#, RegularExpression["^[^a-zа-я]+$"]]] &
{"ACME-SYSTEMS", "FUTURETECH123", "CITY SCHOOL", "CONSULTANT", "A.B. \ CORP", "TЯUMP", "ЯЯ", "TЯЯUMP"}
Original WRONG answer
list2 // Pick[#, StringContainsQ[#, RegularExpression["[ALPHA]"]]] &
{"ACME-SYSTEMS", "FUTURETECH123", "CITY SCHOOL", "CONSULTANT", "A.B. \ CORP", "TЯUMP"}
A very beautiful solution, which gives the right answer. Things began to unravel, however, when I read Hector's comment, got an unexpected result, and tried the following:
list// Pick[#, StringContainsQ[#, RegularExpression["[ALPHB]"]]]&
{"Bob Jones", "ACME-SYSTEMS", "FUTURETECH123", "CITY SCHOOL", "Jane \ Black", "CONSULTANT", "A.B. CORP"}