Для первого случая это должно работать:
if [[ $A = \w+ ]]
\w
образует "слово" символ, который включает в себя подчеркивание. Он может распознавать некоторые строки Юникода, которые могут быть недопустимыми, поэтому [A-Za-z0-9\\_]
могут работать лучше, чем \w
у вас.
Для второй попытки:
if [[ $A = ^[A-Za-z]\w+ ]]