Que tal
$ echo "[%L10n.msg('foo')%]" | sed "s/\[%L10n.msg('//; s/')%]//"
foo
ou, com sua nova amostra de entrada,
echo "Some ' very [%% ]long ' text [%L10n.msg('foo')%] with lot of [%characters%]" | sed "s/^.*\[%L10n.msg('//; s/')%].*$//"
foo
ou, com a entrada alterada pela segunda vez (lê Arquivo testado agora), tente
sed -n "/^.*\[%L10n.msg('/ {s///; s/')%].*$//;p}" file
foo
foo