!preg_match('/\d\d.\d\d.\d\d(\d\d)?/si', $deineEingabe)
Warum das mit TT.MM.JJJJJ funktioniert ist schnell erklärt:
es wird ja getestet, ob der reguläre Ausdruck ein TEIL deiner Eingabe ist. Du musst noch festlegen, daß danach zB keine weiteren Zeichen kommen !!!
Und da wäre zB \D sinnvoll weil \D alles ausser einer Zahl ist:
!eregi('([0-9]{2}).([0-9]{2}).([0-9]{2,4})\D', $geb))