Один паттерн. Один скопипастен в аргумент RegExp, второй компилится по синтаксису.
var d = '11-apr-1961';
var re = new RegExp('^(\d{1,2})(\/|-)([a-zA-Z]{3})(\/|-)(\d{4})$');
var rx = /^(\d{1,2})(\/|-)([a-zA-Z]{3})(\/|-)(\d{4})$/;
d.match(re);
/*
null
*/
d.match(rx);
/*
11-apr-1961,11,-,apr,-,1961
*/
В чем тут секрет?