Puedes hacer algo como lo siguente
Código PHP:
$pattern = '/(\\[)(size)=(\\d{1,2})(\\])(.*)\\1\\/\\2\\4/';
$replace = "<span style='font-size:$3pt'>$5</span>";
$texto = '[ size=7 ]xxxx[ /size ]';
echo preg_replace( $pattern, $replace, $texto );
Ojo que separe intencionalmente los corchetes para que no fueran interpretados por el interprete de codigo vB del foro.