$ man bash
Word splitting and filename expansion are not performed on the words between the ‘[[’ and ‘]]’; tilde expansion, parameter and variable expansion, arithmetic expansion, command substitution, process substitution, and quote removal are performed.
$ echo $BASH_VERSION
4.2.10(1)-release
command 1
$ [[ "hello" =~ "he" ]] && echo YES || echo NO
YES
command 2
$ [[ "hello" =~ he.* ]] && echo YES || echo NO
YES
command 3
$ [[ "hello" =~ "he.*" ]] && echo YES || echo NO
NO
Why command 2 and 3 are different?
See Question&Answers more detail:os