O 't' está entre as duas sub-expressões regulares: \t
, que não é interpretado como uma tabulação, mas como t
. Uma tabulação seria $'\t'
.
Tente isso:
$ msg=$'[4]\tthe message'
$ [[ "$msg" =~ (.+)$'\t'(.+) ]]
$ echo ${BASH_REMATCH[1]}
[4]
$ echo ${BASH_REMATCH[2]}
the message