Okay you can do this with a split or match. I went for a solution not counting on ) always being a delimiter. Instead I am looking for a very specific pattern of whitespace,letter,),whitespace in a zero-length lookahead. So most probable uses of parenthesis like "D) (whispers)" will be okay [ D) matches s) does not ].
var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla';
var re = /(?=\s\w\)\s)/g;
var myArray = str.split(re);
var text;
var parenIndex;
// the result is = myArray[ 'a) first ...', 'b) second ... ', 'c) third ...' ];
for (var i = 0, il = myArray.length; i < il; i++) {
text = myArray[i];
parenIndex = text.indexOf(')'); // get first instance of )
myArray[i] = [ text.substring(0, parenIndex - 1), text.substring(parenIndex + 1) ];
}
// the result is = myArray[ ['a', 'first ...'], ['b', 'second ... '], ... ];
A simpler less reliable approach would as follows. It assumes that ) is always a delimeter.
var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla';
var re = /(?=\w\))|\)/g;
var myArray = str.split(re);
var newArray = new Array(myArray.length / 2);
for (var i = 0, il = myArray.length; i < il; i += 2) {
newArray[i / 2] = [ myArray[i], myArray[i + 1] ];
}