Não use as aspas simples dentro de [[
:
if [[ "$SOME_VAR" =~ ^test\/version[0-9]+([.][0-9]+)+$ ]]; then
echo "Match!"
fi
No manual da GNU bash: link
Observe em particular:
Any part of the pattern may be quoted to force the quoted portion to be matched as a string.
O manual parece sugerir que usar a variável é preferível:
Storing the regular expression in a shell variable is often a useful way to avoid problems with quoting characters that are special to the shell. It is sometimes difficult to specify a regular expression literally without using quotes, or to keep track of the quoting used by regular expressions while paying attention to the shell’s quote removal. Using a shell variable to store the pattern decreases these problems.