Use apenas:
echo (${~"$(echo 'xx|yy')"}|zz)*.txt
Observe as aspas em torno da substituição de comandos, pois zsh
realiza a divisão de palavras, se não estiver girando por padrão após a substituição de comandos, o que pode ser útil em coisas como:
echo (${~${(j:|:)$(cmd)}}).txt
para unir as palavras na saída de cmd
com |
e interpretá-lo como um glob. Veja também o sinalizador de expansão do parâmetro b
se você não quiser que essas palavras sejam tratadas como padrões:
echo (${~${(j:|:)${(b)$(cmd)}}}).txt