Ваша проблема в этом бите: {1}+
С {1}
вы указываете ровно один из предыдущих пунктов .... но затем с +
вы указываете один или несколько из них. Они конфликтуют друг с другом.
В зависимости от ваших требований, вам нужно сбросить {1}
или +
.
Если вы удалите одну или другую из них, код работает в Firefox. (протестировано с использованием Firebug)
Однако, как говорит @Guffa, у вас, кажется, есть какая-то странная логика, когда вы создаете один объект регулярного выражения из другого - он действительно работает, но на самом деле это не очень хорошо, и может вызвать другие проблемы (Я еще не пробовал в Chrome).