Результаты разные? А запускать не пробовали?
>>> /a[\w\d]*\d/.test('a1bcdefghjk')
true
>>> /a[\w\d]*?\d/.test('a1bcdefghjk')
true
В варианте 2 и Вы, и я сказали то же самое

А вот в варианте 1 именно отматывается
Kolyaj,
Цитата:
|
парсер начинает поиск соответствия с конца обрабатываемой строки
|
здесь неточно. имеется в виду с конца максимального совпадения на данном этапе. То есть /a.*b/.test('ab11111111111111111...') отхватит все с b до конца, и только потом начнет обратно ползти