Как объяснил @Kusalananda explained, проблема заключается в '
внутри regex. Простым решением является использование "
для regex, так как "
можно экранировать даже внутри "
-кавычек, в отличие от "
, которые не могут быть экранированы внутри "
-кавычек:
grep -rPoh "(?<=(?