Penso che ti stai complicando la vita.
Innanzi tutto, con la funzione FILE_GET_CONTENTS(), così ottieni una stringa con tutto il testo del file con una sola riga di codice.
Secondo poi, usare le espressioni regolari per cancellare la scritta option dal tag HTML è un po' uno spreco.
A prescindere che nella tua, l'errore ti viene restituito perché non fai l'escape dello slash su OPTION, guarda come farei una io:
codice:
$html = file_get_contents("file_sorgente.txt"); // o .HTML
// <option value="">--Seleziona--</option>
$pattern = "/<option value=\"(.*?)\">--Seleziona--<\/option>"/i";
preg_match_all($pattern, $html, $match);
Dove $html è quello che ottieni con FILE_GET_CONTENTS() e $match sarà l'array dei risultati, all'interno del quale troverai tutti i contenuti del value di tutte le option presenti nella pagina.
Non ho testato la bontà dell'espressione regolare: l'ho scritta qui di getto.
Probabilmente necessita di quale limatura.
Probabilmente, dovrai creare più di una se hai più select, ma credo che il metodo sia chiaro!