Обратные косые черты не являются частью регулярного выражения; оболочка выполняет удаление кавычек, чтобы сгенерировать регулярное выражение .*.mp4?.*
, которое соответствует любой строке, содержащей 1 или более произвольных символов, за которыми следует mp
и необязательный 4. Вы также должны экранировать обратную косую черту.
[[ example.com/something =~ .*\\.mp4\\?.* ]] && echo matched2
При этом будет получено требуемое регулярное выражение .*\.mp4\?.*
.
(Обратите внимание, что регулярное выражение не привязано к началу или концу входной строки, поэтому достаточно \\.mp4\\?
или '\.mp4\?'
. )