Я думаю, что ваша проблема - (.*)
в начале.Я думаю, что, по сути, он захватывает все после #q=
, не оставляя ничего в строке, чтобы найти остальную часть выражения.Я бы подумал, что все браузеры интерпретировали бы регулярное выражение одинаково, но я думаю, что нет.
Попробуйте использовать что-то не жадное
(.*?)
или просто используйте оператор границ
(.{1,50})
Возможно, вам не нужно использовать оба.