Во первых у тебя в регулярке не хватает ограничителей и экранирования, во вторых это не регулярка вовсе, с таким же успехом мог бы использовать str_replace() несколько раз.
preg_replace('/\[size=(\d*?)\](.*?)\[\/size\]/','<span style="font-size:$1px;">$2</span>', $text)
Читай доки по функции прежде чем пытаться что-то с ней написать.