I wouldn't dare touch this with an ereg...
Note: you don't say if strings starting with "isn't" should be matched or not (hey, it starts with "is"...). I'll assume not. I'll also assume that you want "is this string" to be matched, not (is th)"is string"
preg_match_all('/\bis\b(?🙁?!my).)+?\bstring/i', $string, $matches);
Phew! That was a non-trivial problem.