Nesse caso, lookahead zero-width (?=...)
faz o que você quer :
$ echo foo bar buzz | grep -Po "foo \Kbar(?= buzz)"
bar
Isso requer alguns parênteses extras. Não há escape de caractere único para lookahead do jeito que existe para \K
.
\K
é realmente apenas um lookbehind de largura zero para tudo até agora, então isso também é equivalente a
echo foo bar buzz | grep -Po "(?<=foo )bar(?= buzz)"
que eu acho mais fácil de seguir pessoalmente.