Para los que no sepan que es REGEX o POSIX, ambas son "expresiones regulares", no se como explicarlo. A mi entender, son una serie de "reglas" para crear expresiones que validen textos no exactos (EMails, fechas...)
Lo básico sobre REGEX (las expresiones regulares de toda la vida xD) lo podeis encontrar en
este tuto de Focux.
Antes que nada, ¿Porqué pasar a POSIX?
Quizás algunos lo sepais, pero para los que no...
En PHP 6 REGEX pasará a la historia, funciones como ereg(i), ereg(i)_replace (las que creo que más útiles pueden ser a este nivel, o las únicas que conozco xD) dejarán de funcionar.
En su lugar habrá que usar preg_match como ereg(i) y preg_replace en lugar de ereg(i)_replace.
Habréis notado que las funciones REGEX tienen una (i), eso es porque existe ereg y eregi, y ereg_replace y eregi_replace; según son case-sensitive (distingue mayusculas y minusculas) o no.
En POSIX no hacen falta funciones extras, ahora verás porqué

Ahora, el como...
POSIX en el fondo (y en la superficie) es REGEX... con unas pocas diferencias
1º: Caracteres de principio y fin.
En POSIX la expresión debe tener una / al principio y al final (creo que se puede hacer con otros caracteres, lo he visto con @ o.O).
// Esto reemplazaría "numeroX" por "número: X", es una función algo inútil, pero es un ejemplo...
// REGEX
ereg_replace('numero[0-9]+', 'número: \\1', $texto);
// POSIX
preg_replace('/numero[0-9]+/', 'número: \\1', $texto);
Observa que es identica, incluida la sustitución (\\1, \\2, \\N), excepto por las barras.
2º: Escape
Cuando usamos algún caracter reservado (en un BBCode, los [ y ], por ejemplo) debemos escaparlo...
En REGEX se ponen dos barras inclinadas, en POSIX solo 1.
Cabe destacar, que en POSIX la barra inclinada hay que escaparla...
// (.*) indica cualquier texto...
// REGEX
ereg_replace('\\[b\\](.*)\\[/b\\]', '<b>\\1</b>', $texto);
// POSIX
preg_replace('/\[b\](.*)\[\/b\]', '<b>\\1</b>', $texto);
Basicamente, ya puedes pasar de REGEX a POSIX y ser válido en PHP6
Pero, en REGEX yo uso eregi para que no distinga entre mayusculas y minusculas, ¿Cómo lo hago?
Usando las flags (banderas), pero no las confundais con parametros de la función, estas flags van en la expresión propiamente dicha, detras del último /
Cómo no estoy muy adentrado en este tema, conozco 3, y si es que hay más, no se su función...
NOTA: Esto está algo mal, así que mañana con tiempo lo pondré bien
i -> Para hacerlo insensible a mayusculas y minusculas
$preg1 = preg_match('/^hola$/', $var);
// hola validaría, pero HOLA, Hola, hOla, HOla... no validarían
$preg2 = preg_match('/^hola$/i', $var);
// hola validaría, y también HOLA, Hola...
Usi -> No se como explicarlo, digamos que toma lo primero que encuentra, además lo vuelve insensible, algo así:
$preg = preg_replace('/\[b\](.*)\[\/b\]/Usi', '<b>\\1</b>', $texto);El texto "Hola [*b]que tal?[/b*], yo muy bien [*b]^^[/b*] (Sin asteriscos)
Lo convertiría a:
Hola
que tal?, yo muy bien
^^Uis -> Cómo el anterior, pero anidado, es decir, coge primero y último:
$preg = preg_replace('/\[quote\](.*)\[\/quote\]/Uis', '<b>\\1</b>', $texto);El texto "¿Porqué dijiste esto?:
[quote*]
Al que dijo:
[quote*]Tonto el que lo lea[/quote*]
¿Dónde leíste eso para aprenderlo?

[/quote*]
Lo convertiría a:
¿Porqué dijiste esto?:
Al que dijo:
Tonto el que lo lea
¿Dónde leíste eso para aprenderlo? 
Espero que os halla quedado claro y os sea útil ^^
Salu2.
Más información:
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php