Da kannst du gleich mit preg_replace() ersetzen - ich verstehen den Sinn hinter der Aktion nicht ganz.
OK also so:
um den variablen Zahlenteil im Suchmuster kommen Klammern rum:
$search = "/<img id=\"db([0-9]+)\"/";
Und die Erstetzung mittels so genannter "backreference" erfolgt dann so:
$found_ids = preg_replace($search, "$1", $matches[0]);
Somit bleibt vom gesamten Suchmuster nur mehr der Zahlenteil übrig. Das ist jetzt auch das, was ich eingangs von einer Variable gefaselt hatte :-)