Danke. Das ist ein wichtiger Satz. Man sollte ihn fett rot schreiben und dreimal unterstreichen.
Ja, dann sollte man wohl doch "hard coden" ala:
$ AZ=""; for i in {A..Z}; do AZ+=$i; done
$ isVAR() { [[ ${1^^} =~ ^[${AZ}_][${AZ}_0-9]*$ ]];}
$ isVAR o7 ; echo $?
0
$ isVAR ö7 ; echo $?
1
$