1. quello che cerchi non e' in $find[0][0], ma in $find[1]
2. usa il modifier un-greedy, o l'espressione con (.*?) altrimenti l'espressione troverà cose che non ti aspetti quando ci sono piu' coppie di <router></router>
3. credo che tu stia facendo qualcosa di terribilmente sbagliato, questo parsing non serve, cake ha le apposite funzioni per creare le url in base alle route configurate: basta usare una cosa tipo $html->url(array("controller" => "negozio","action" => "showproduct", $id));. E le immagini invece le devi tenere sotto la webroot/qualcosa, senza nessuna route.