Newlines, as has been pointed out, are probably your problem.
While the regex engine does have some limits to it, these are generally documented, and not small. The {n,m} style of repeat caps at 32K, for example, and there's a limit (IIRC) of 32K match variables, and there are some recursion depth issues, but it takes a lot to trip them. Normal regexes won't, generally speaking.
.* is generally limited by memory and in pathological cases runtime. As an example,
perl -e '$foo = "x" x 6000000; $foo =~ /(x*)/; print length($1), "\n"'
outputs a length of 6000000.