文字列に含まれるすべての文字が大文字かどうか (小文字と大文字のバリエーションがあるかどうか) を確認したいだけです。Tcl のビルトイン プロシージャは、期待どおりに動作しません。たとえば、
string is upper "123A"
false を返しますが、true を返したいと思います。また、A が大文字のキリル文字や、大文字と小文字を区別しない別の一般的なアルファベットの文字に置き換えられた場合にも、true を返したいと思います。文字列からすべての非文字を単純に除外することもできますが、英語以外の言語の文字を処理しようとしている場合、それはそれほど単純ではないと思います。