Ok funziona con "parametro" fisso.
Ma se invece avessi questa parte dell'url variabile?
Quindi se io avessi...
/pippo/X/a/b/c/d/N/index.htm
/pluto/X/a/b/c/d/N/index.htm
/paperino/X/a/b/c/d/N/index.htm
/..../X/a/b/c/d/N/index.htm

Come vedi occupa sempre solo "una posizione" prima di X ma è variabile.
La tua espressione regolare come varia?
codice:
$newpath = preg_replace('#/parametro/.*?/#', "/parametro/$newdir/", $oldpath);