Frozen Coyote,
Да, увидел, что не правильно сделал в предыдущем варианте. Сам параллельно с Вами разбираюсь.
var apr = "It's a dark april night",
may = "It's a bright may day",
jun = "It's a bright june day",
jul = "It's a bright july day";
var pattern = /bright(:?(?!june).)*day/;
alert(apr.match(pattern));
alert(may.match(pattern));
alert(jun.match(pattern));
alert(jul.match(pattern));