Ändern Sie Ihren Ansatz ein wenig. Verwenden Sie zwei Variablen, anstatt den Suchbegriff und Trennzeichen in einer einzigen Zeichenfolge zu speichern.
$sep = '--->';
$searchfor = '124';
$pattern = "/^$sep\s+($searchfor\d+)\s+.*/m";
// search, and store all matching occurences in $matches
if(preg_match_all($pattern, $contents, $matches)){
echo implode(' ', $matches[1])."\n";
}
Ausgänge:
12455 12477