Como capturar um número arbitrário de grupos no JavaScript Regexp?

Eu esperaria esta linha de JavaScript:

"foo bar baz".match(/^(\s*\w+)+$/)

para retornar algo como:

["foo bar baz", "foo", " bar", " baz"]

mas, em vez disso, retorna apenas a última correspondência capturada:

["foo bar baz", " baz"]

Existe uma maneira de obter todas as correspondências capturadas?