Рассмотрим следующий пример:
<html>
<body>
<script type="text/javascript">
var str="filename.jpg";
var pattOne = new RegExp('\.[^\.]*$');
var pattTwo = new RegExp('(\.[^\.]*$)');
var pattThree = new RegExp('(\.[^\.]*$)', 'g');
document.write(str.match(pattOne));
document.write('<br>');
document.write(str.match(pattTwo));
document.write('<br>');
document.write(str.match(pattThree));
</script>
</body>
</html>
Вот результат:
.jpg
.jpg,.jpg
.jpg
Я ожидаю такого результата:
.jpg
.jpg
.jpg
Почему заключение круглых скобок вокруг регулярного выражения меняет результат? Почему использование модификатора 'g' снова меняет результат?