't' находится между двумя подрегексами: \ t
, что не интерпретируется как табуляция, а как t
. Таблица будет $ '\ t'
.
Попробуйте вместо этого:
$ msg=$'[4]\tthe message'
$ [[ "$msg" =~ (.+)$'\t'(.+) ]]
$ echo ${BASH_REMATCH[1]}
[4]
$ echo ${BASH_REMATCH[2]}
the message