Você pode desativar a sintaxe PATTERN(QUALIFIERS) desmarcando a opção bare_glob_qual :
setopt no_bare_glob_qual
Se a opção extended_glob estiver definida (e você deverá defini-la, a única razão para não configurá-lo é para compatibilidade retroativa com scripts raros que usam sintaxe incomum), então há outra sintaxe para qualificadores glob: PATTERN(#qQUALIFIERS) . Então você ainda pode usar qualifiers glob, que são um dos recursos mais importantes do zsh, mas você terá que digitar um pouco mais.
O Zsh permite que você desabilite a expansão de curingas (globbing), e isso parece uma escolha melhor para você. Se um comando for prefixado por noglob , não será executada globbing em seus argumentos. Por exemplo, para poder digitar URLs contendo ? como argumentos para wget , tenho alias wget='noglob wget' . Se você definir alias ag='noglob ag' , poderá digitar ag mymethod(param) .
Se ag tiver um padrão de pesquisa e nomes de arquivo como argumentos, desabilitar a globbing não será bom. Se você conseguir analisar os argumentos de ag , poderá executar a expansão de curingas neles. Eu não sei a sintaxe de ag , então eu vou dar um exemplo onde eu assumo que ag só pega opções que não aceitam argumentos, e que seu primeiro argumento não-opção é um padrão e o resto são arquivos.
ag () {
local i=1
while [[ ${(P)i} = -* ]]; do ((++i)); done
if ((i < $#)); then
set -- "${(@)@[1,$i]}" $~@[$((i+1)),$#]
fi
}
alias ag='noglob ag'