Verifique a página expr
man: as expressões regulares estão implicitamente ancoradas , portanto, se sua linha $ não começar com uma palavra maiúscula entre colchetes, a expr ganhou encontre-o
line="<hello><HELLO>"
expr "$line" : '.*<[[:upper:]]*>' # => 14
expr "$line" : '.*\(<[[:upper:]]*>\)' # => <HELLO>
ref: link
Observe que expr
não é um comando bash, é um programa separado. Se você quiser fazer isso no bash:
if [[ "$line" =~ "<"[[:upper:]]*">" ]]; then
echo "found it"
echo "${BASH_REMATCH[0]}"
fi
Além disso, citação suas variáveis