Con un'unica espressione regolare forse č possibile riconoscere entrambe le formattazioni, facendo una cosa tipo:
Codice PHP:
$month='0[1-9]|1[0-2]';
$day='0[1-9]|[12][0-9]|3[01]';
$year='(?:19|20)\\d{2}';

$rex="/^(?:($month)($day)($year)|($year)($month)($day))$/";

$date=preg_replace($rex,'$2$6/$1$5/$3$4',$date); 
Forzando l'anno ad essere compreso tra il 1900 e il 2099 e il mese tra 01 e 12. Poi in questo caso, giā che c'ero, ho messo le condizioni anche per il giorno quindi in teoria non converte la data se trova valori superiori a 31.
Sarebbe cmq da testare.