En efecto, gracias por responder.
Aqui dejo el código con el que me resulto:
Código PHP:
$codigo="P-09-010102";
$patron ="^([B|P|C])-((0[1-9]|1[0-2]){1})-((0[1-9]|1[0-2]){1})((0[1-9]|1[0-9]|2[0-9]|3[0-1]){1})([0-9]{2,})";
if ( ereg($patron,$codigo) )
return 1;
else
return 0;