belki body tagının içinde bgcolor falan vardır, yabi <body bgcolor=" "> olduğu için eşleşmiyordur. yanlış anlama bazen bu kadar basit şeyler gözden kaçıyor.
yok direk <body> ve </body> sayfada var diyorsan
preg_match_all('#<body>(.*?)<\/body>#si', $icerik, $parca);
echo $parca[1][0];
// ya da...