Как правило, вы будете продолжать вызывать exec с выражением, которое использует глобальный (g), так что будет установлен lastIndex .
var input : String = "asd asd asd asd";
var output : Array = new Array();
var expr : RegExp = /[^\s]+(?:$|\s+)/g;
var result : Object = expr.exec(input);
while(result != null)
{
input.push(result[0].toString());
result = expr.exec(input);
}
В зависимости от количества совпадений, которое вы можете ожидать, может быть быстрее использовать ...
([^\s]+(?:$|\s+))+
... который захватит все возможные совпадения в одном exec (). Матчи будут доступны в результате [1] ... результат [n]