Можно с извратом и использованием двух массивов.
str= "abcdef";
arrExec= [];
arrRes=[];
reg= /\w\w/g
while ((arrExec= reg.exec(str)) !== null) {
arrRes.push(arrExec);
--reg.lastIndex;
};
alert(arrRes);
А можно и с одним массивом, но с ещё большим извратом.
str= "abcdef";
arrRes=[];
reg= /\w\w/g
while (arrRes.push(reg.exec(str)) && arrRes[arrRes.length-1] !== null) {
--reg.lastIndex;
};
arrRes.pop(); // ибо последний элемент null, удаляем его
alert(arrRes);