BB-Code-RegEx em javascript

Eu tenho este pedaço 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;    
}

Ele supostamente substitui todas as ocorrências das tags "[size = nn] [/ size]" - mas apenas substitui as externas. Eu não consigo descobrir como substituir todos eles. (Por favor, não recomendo usar um script PHP, eu gostaria de ter uma visualização ao vivo para o texto formatado com código BB)

Teste-o

questionAnswers(4)

yourAnswerToTheQuestion