Allerdings finde ich, dass preg_match besser zur Überprüfung von Benutzereingaben oder allgemein von dynamischen Inhalten passt.
Dein Ausdruck ist aber unsinnig
/.(jpeg|jpe|jpg)$/i oder /.jp(eg|e|g)$/i (beides nicht getestet) würde völlig ausreichen.
Da ich allerdings klar definierte Eigenschaften überprüfen möchte (Extensions), benutze ich doch lieber Anweisungen, die sich genau auf mein Ziel beziehen, z.B. $bar=pathinfo($foo); $bar['extension'].
Nein tust du nicht - du prüst mit preg_match den vollständigen Dateinamen, nicht nur die Extension.
Zwar ist die Lösung mit einem regulären Ausdruck eleganter, aber imho weniger leicht wartbar - besonders, wenn es um Benutzereingaben geht.
Das geht also auch:
Ja - aber ihmo weniger einfach verständlich (wenn man mit PCRE nicht so fit ist) und auf dauer eben Fehleranfälliger.