Justamente lo que estás pidiendo es lo que hace el ? en el ejemplo que te pasé.
No entiendo por qué escapaste el ? y lo pusiste como \?, haciendo que perdiera su función.
Por otro lado, el problema es que por lo que leí las funciones ereg* no soportan el "?" de esa forma, así que creo que la mejor opción es que uses las funciones preg* (
http://php.net/pcre)
Úsalo tal cual lo escribí en el ejemplo:
Código PHP:
$texto = preg_replace("#<script(.*?)</script>#",'',$texto);