BB-Code-RegEx en javascript

Tengo este pedazo de código:

var s_1 = 'blabla [size=42]the answer[/size] bla bla blupblub';
var s_2 = 'blabla [size=42]the answer[/size] bla bla blupblub [size=32] 32 [/size]';

alert('Test-String:\n' + s_1 + '\n\nReplaced:\n' + size(s_1));
alert('Test-String:\n' + s_2 + '\n\nReplaced:\n' + size(s_2));


function size(s) {
    var reg = /\[size=(\d{1,2})\]([\u0000-\uFFFF]+)\[\/size\]/gi;
    s = s.replace(reg, function(match, p1, p2) {
        return '<span style="font-size: ' + ((parseInt(p1) > 48) ? '48' : p1) + 'px;">' + p2 + '</span>';
    })
    return s;    
}

Se supone que reemplaza todas las apariciones de las etiquetas "[size = nn] [/ size]", pero solo reemplaza las externas. No puedo averiguar cómo reemplazar a todos ellos. (Por favor, no recomiendo usar un script de PHP, me gustaría tener una vista previa en vivo para el texto con formato de código BB)

Pruébalo

Respuestas a la pregunta(4)

Su respuesta a la pregunta