Зачем вообще это всё нужно? Если нужно просто сгенерировать строку, в которой будут в определённых местах цифры, а в других - буквы, то регулярка тут не нужна.
Лучше уж написать ф-цию, которая будет понимать что и где генерировать, причём чтобы ф-ция использовала какой-нибудь свой "синтаксис", типо:
function genStr(pattern) {
//...
}
alert( genStr('$d5$w3$W3$d[0-5]6') ); //19435fgtMZP302213
$Type[from-to]N
Где:
- Type - тип генерируемого значения (n - цифра, w - любая латинская буква в нижнем регистре, W - любая латинская буква в верхнем регистре).
- [form-to] - допустимые значения (от - до).
- N - количество генераций значения.
Например:
$d - сгенерирует строку из одного случайно числа
$d5 - сгенерирует строку из 5 случайных цифр
$d[3-7] - сгенерирует строку из одного случайного числа в диапазоне от 3 до 7 включительно.
$d[4-9]3 - сгенерирует строку из трёх случайных чисел в диапазоне от 4 до 9 включительно.
$w10 - сгенерирует строку из 10 случайных букв латинского алфавита в нижнем регистре.
$W[a-f]5 - сгенерирует строку из 5 случайных букв в диапазоне от "a" до "f", нижнем регистре латинского алфавита.
$w$d3$w5 - "случайная буква н.р. + 3 случайные цифры + 5 случайных букв н.р."
Ну это так, как идея. Можно конечно всё это дело расширить или вообще сделать по другому.