#compdef -p p[bgpn]m* local pat _compskip=1 if [[ "$words[1]" = pnm* ]]; then pat='*.(#i)p[bgp]m' else pat="*.(#i)${words[1][1,3]}" fi _path_files -g "$pat" || _files -g '*.(#i)p[bgp]m'