Можно и их того.
<?php
$file=fopen("./index.htm","r");
$content=fread($file,filesize("./index.htm"));
print \'<pre>\';
print "$content\\n";
if (preg_match_all(\'/<body.*?>(.*?)<\\/body>/si\',$content,$res,\'PREG_PATTERN_MATCH\'))
print $res[1][0];
else print \'nothing matched\';
print \'</pre>\';
?>Прошу обратить внимание на:
1) у закрывающего тега перед / стоит \\. Что избавляет тебя от ошибок, которые выскакивали (надеюсь, ты сам уже это понял)
2) модификатор регулярного выражения s, который означает, что вас не укачает (шутка). Который означает, что . - это любой символ ВКЛЮЧАЯ конец строки (без него, вообще говоря, работать будет не всегда)
3) содержимое между тегами в регулярном выражении взято в скобки, что позволяет обращаться к нему при помощи массива res[1].
В общем,
RTFM по адресу
http://www.php.net/manual/en/function.preg-match-all.php .
Там даже примеры есть (и, кстати, некоторые из них - как вырезать содержимое тегов)