Lieber Cheatah,
Du hast die Bedeutung des Fragezeichens und des "+"- und vermutlich auch "*"-Operators noch nicht voll verstanden. Zudem bin ich nicht sicher, ob Du Dir der Bedeutung von Klammern wirklich bewusst ist.
Na, dann helfen wir dem OP doch auf die Sprünge!
/(body)/
findet das Vorkommen von "body" und merkt es sich in RegExp.$1. Da im öffnenden BODY-Tag Parameter enthalten sein _können_ (aber eben nicht müssen) ist der "+"-Operator hier nicht optimal, da er mindestens ein Vorkommen vorraussetzt, das hier aber nicht gegeben sein muss.
/(<body[^>]*>)/i
findet alles was mit "<body" anfängt, mit ">" aufhört, und was dazwischen beliebig viele (auch keine) Zeichen enthalten kann, die aber allesamt kein ">" sein dürfen. Die Unterscheidung zwischen Groß- und Kleinschreibung ist durch den Schalter "i" deaktiviert. Javascript merkt sich den kompletten Ausdruck in RegExp.$1.
Der OP möchte doch nur den Code innerhalb des BODYs, also braucht er:
var hatGeklappt = mystring.match(/<body[^>]*>(.*)<\/body>/i);
alert(RegExp.$1);
Habe das zwar jetzt nicht ausprobiert, denke aber, dass es funzt(R).
Liebe Grüße aus Ellwangen,
Felix Riesterer.