Non so se le RegExp sono lo strumento piu` adatto.

Infatti si tratta di fare un parsing del tuo testo e spezzarlo secondo dei criteri.

Forse dovresti prima fare uno split del testo con delimitatore lo spazio, indi cercare se ci sono delle stringhe che contengono caratteri < o > .

Ad esempio:
codice:
testo = "Il <selection type=\"1\">piccolo</selection> Giovanni ....";
var pezzi = testo.split(" ");
var a = new Array();
var n = 0;
for (var i=0; i<pezzi.length; i++) {
  if (pezzi[i].indexOf("<")<0) {
    a[n] += pezzi[i];
  } else { // contiene i tag
    n++;
    elabor(n, pezzi[i]);
    n++;
  }
}
...

function elabor(c,str1) {
  a[c] = new Array(2)
  ... qui occorre estrarre quello che ti interessa (anche mediante RegExp), 
  salvare il numero in a[c][0] e il resto in a[c][1]
}
Ciao
Michele