PHP-Code:
$nummer preg_replace('#.{3}([0-9]+).{4}#'"\\1"$filename); 
Geschweifte Klammern geben die Anzahl von dem an was vorher stehen darf an, nicht eckige. In [ und ] werden Zeichengruppen bestimmt, wie du es ja selber getan hast mit [0-9].