bueno es mas que nada para decirle como la palabra lo dice.. codicioso ser..
las expresiones de por si son codiciosas.. eso quiere decir que buscan el match mas grande posible
con el signo ? solo le quitas la codicia.. es como decirle que busque hasta el match mas corto posible
un ejemplo ..
Código PHP:
Ver original$string = "foo&bar&candy&mashmellow";
// expresion codiciosa
echo preg_replace("/^.*&/", "", $string); // resultado: mashmellow
echo "<br />";
// expresion sin codicia
echo preg_replace("/^.*?&/", "", $string); // resultado: bar&candy&mashmellow
tambien puedes quitarle la codicia por defecto a la expresion con el modificador U (Ungreedy)
Código PHP:
Ver original$string = "foo&bar&candy&mashmellow";
// regex no codiciosa
echo preg_replace("/^.*&/U", "", $string); // resultado: bar&candy&mashmellow
espero te aya servido de algo..
saludos..
PD: soy un pésimo profesor ;D