Ereg er den ældste, og den kan man bruge hvis man ønsker at være sikker på at kunne køre på meget gamle versioner af PHP (tidligere end version 3). Dokumentationen starter godt nok først fra 3.0, men ereg er faktisk ældre end det.
Preg er noget nyere, og er i virkeligheden en implementation af PCRE pakken af Philip Hazel (= Perl Compatible Regular Expressions). Denne pakke er utroligt populær, og den bruges et utal af andre steder end kun lige i PHP:
http://www.pcre.org/Preg-funktionerne *kan* faktisk en del mere end ereg-dittoerne – f-eks. har man lazy-qualifiere (.*?) og lookaround i preg. Desuden er preg generelt hurtigere end ereg.
Det mest positive man kan sige om ereg er altså at den er bagudkomptibel, men det er vist ikke noget som reelt betyder noget mere – hvis man arbejder på præ-3.0 installationer af PHP bør man efterhånden tænke på at få den opdateret! Jeg har i øvrigt set indikationer på at ereg er på vej til at blive et optional-modul i fremtidige versioner af PHP, men det ligger nok ikke lige rundt om hjørnet.
Kort og godt: brug preg!
Ereg:
http://dk2.php.net/manual/da/ref.regex.phpPreg:
http://dk2.php.net/manual/da/ref.pcre.php