RegEx para extrair todas as correspondências da string usando o RegExp.exec

Estou tentando analisar o seguinte tipo de string: [key:"val" key2:"val2"] onde há chave arbitrária: pares "val" dentro. Eu quero pegar o nome da chave e o valor. Para aqueles curiosos, estou tentando analisar o formato de banco de dados do task warrior. Aqui está a minha string de...