Ваше регулярное выражение заключено в одинарные кавычки, но также содержит одинарные кавычки.
Одиночная кавычка в ["']
должна быть экранирована, иначе она будет сигнализировать оболочке о конце строки в кавычках.
Это исправит:
grep -r -P -o -h '(?<=(?<!def )my_method )(["'\''])(?:(?=(\\?))\2.)*?\1'
# ^^^^
В ["'\' ']
первая '
завершает первую часть строки, \ '
вставляет буквальную одинарную кавычку, а последняя '
начинает новую строку в одинарных кавычках, которая будет объединена с предыдущими битами. Только средняя одинарная кавычка окажется в самом регулярном выражении, а две другие будет удален оболочкой.