Talvez use grep's -o
-o, --only-matching
Show only the part of a matching line that matches PATTERN.
, que vai deixar você com todo o padrão, em seguida, seguir com outro sed (?) para remover / substituir os delimitadores (foo)?
Eu duvido que seja "eficiente", mas fará o trabalho.