Почему в 
match не хочет работать 
нежадная директива типа 
.*? или 
.+?
Смотрите:
alert( "1245;12345".match( /1.*?3.*?5/ )  )
результат:   ["
1245;12345"]
alert( "1245;12345".match( /(1.*?3.*?5)/ )  )
результат:   ["
1245;12345", "
1245;12345"]
alert( "1245;12345".replace( /^.*(1.*?3.*?5).*$/, "$1" )  )
результат:   "
12345"  (правильно)
А от 
match() ведь ожидалось то, что выдает 
replace()
То есть нежадный оператор работает в 
replace(), но не работает в 
match(). В чем же дело?