bash regular expression
REGEX="^[[:upper:]]{2}[[:lower:]]*$"
# Test 1
STRING=Hello
if [[ $STRING =~ $REGEX ]]; then
echo "Match."
else
echo "No match."
fi
# ==> "No match."
# Test 2
STRING=HEllo
if [[ $STRING =~ $REGEX ]]; then
echo "Match."
else
echo "No match."
fi
# ==> "Match."
RE='-c ([^ ]+)'
if [[ ${ARGS} =~ ${RE} ]]; then
SOURCE_FILE="${BASH_REMATCH[1]}"
SOURCE_FILE_BASE="${SOURCE_FILE%%.*}"
SOURCE_FILE_EXT="${SOURCE_FILE##*.}"
fi
RE='(.*) -include .+\.pch(.*)'
if [[ $ARGS =~ $RE ]]; then
ARGS="${BASH_REMATCH[1]}${BASH_REMATCH[2]}"
fi