es que para lo que propones, basta con usar
Código PHP:
$fichero_xml='La cadena #1# seguida de varios caracteres que no formen @1@ hasta que se encuentre @1@';
preg_match('/#1#.*@1@/', $fichero_xml,$resultados)
Con eso, obtendrías "#1# seguida de varios caracteres que no formen @1@ hasta que se encuentre @1@"
Luego, con esto:
Código PHP:
$fichero_xml='La cadena #1# seguida de varios caracteres que no formen @1@ hasta que se encuentre @1@';
preg_match('/#1#.*@1@/U', $fichero_xml,$resultados)
obtendrías "#1# seguida de varios caracteres que no formen @1@".
Aunque quizás no quieres ni lo uno ni lo otro, por eso pedía un ejemplo más completo.
Saludos