Это потому, что у вас есть одна цитата, которая, как вы надеялись, была внутри вашего регулярного выражения, но оболочка этого не знает. На этот раз вы можете избежать двойных кавычек вокруг выражения Perl:
perl -nle "print for m/\* Members= (\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([,])*)*$/i)/g"
В общем, вам нужно использовать трюк '\''
:
perl -nle 'print for m/\* Members= (\w+([-+.'\'']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([,])*)*$/i)/g'
'\''
вставляет одинарную кавычку в одинарную строку в оболочке; первая кавычка закрывает текущую строку в одинарных кавычках; цитата с обратной косой чертой включает одинарную кавычку; и последняя кавычка начинает новую строку в одинарных кавычках.