Это зависит от языка, но должен быть модификатор, который вы можете добавить к шаблону регулярного выражения. В PHP это:
/(.*)<FooBar>/s
. S в конце заставляет точку соответствовать всем символам, включая символы новой строки.
Действительно возможно, что нарушение доступа на самом деле является ошибкой нехватки памяти (или другим видом ошибки, связанной с памятью), как упомянуто в комментариях Шеффа и Питера.
В данном конкретном случае большой размер дампа (± 33 ГБ) является признаком того, что приложение (вместе с другими приложениями) может потреблять слишком много памяти.
Не видя исходного кода, невозможно узнать, что он может сделать, если обнаружит ошибку нехватки памяти. Конечно, существует множество программ, которые не проверяют каждое выделение памяти на предмет сбоев, и в результате их код может полностью сойти с рельсов.
Самым распространенным результатом ошибки «нехватка памяти», которая не проверяется, является нарушение доступа, но обычно оно происходит по адресу, который либо очень мал, либо имеет какой-то очевидный бессмысленный шаблон. Это связано с тем, что многие функции выделения памяти возвращают ноль, когда им не хватает памяти, и невозможность проверки может привести к доступу к адресу возле возвращаемого значения. Кроме того, некоторые функции оставляют результат неинициализированным и возвращают отдельную ошибку. Неспособность проверить эту ошибку может привести к использованию неинициализированного значения для доступа к памяти, что обычно выглядит очень странно.
Здесь адрес выглядит разумным. Но кто знает. Может быть, код выделяет новый буфер, освобождает старый и переключает старый адрес на новый, но при ошибке не переключает адреса, а освобождает старый адрес, вызывая доступ после освобождения. Без исходного кода невозможно узнать.