Ahh, como no me di cuenta, muchas gracias amigo!, estaba usando mal los argumentos era el $string antes de $lenguaje,..
Ahora me surge otro problema,..
La funcion devuelve el texto..
[ code]<? echo "hola"; ?>[ /code] (sin espacios)
Donde <? ...... ?> esta coloreado,.. mas muestra el bbcode,.. por que sera esto?,.. sera algun problema de la expresion regular en si?
EDIT: solucionado con $matches[1];
Muchas gracias
pateketrueke!! :D
Saludos