Hi,
why do you want the output [FONT=courier new]<font coluor=yellow>hi[/colour][/FONT] and not [FONT=courier new]<font color=yellow>hi</font>[/FONT]?
Normally the right code should be:
$article = "[coluor=yelow]hi[/coluor]";
$article = preg_replace("#\[coluor\=([^\[]*)](.*)\[\/coluor\]#Ui", "<font color=\"\\1\">\\2</font>", $article);
wizkid