Я вижу странную проблему с CentOS 6.4, zsh 4.3.10 (x86_64-redhat-linux-gnu).
Это запускает два регулярных выражения в одной строке. Ни одно выражение не передает условное условие if, но когда я ИЛИ их вместе
$ if [[ "foo" =~ "^\s*$" ]]; then; echo "Test"; fi
$ if [[ "foo" =~ "^\.+$" ]]; then; echo "Test"; fi
$ if [[ "foo" =~ "^\.+$" || "foo" =~ "^\s*$" ]]; then; echo "OR test"; fi
OR test
Насколько я могу судить, это происходит только в CentOS, я получаю ожидаемое поведение с zsh 5.0.2 (x86_64-apple-darwin13.0) и zsh 5.0.2 (x86_64-pc-linux-gnu)