Então, o seguinte funcionou:
require ["fileinto", "mailbox", "variables", "regex"];
if exists "List-Id" {
if header :regex "List-Id" "([a-zA-Z0-9][a-zA-Z0-9\-_. ]+[a-zA-Z0-9.])" {
fileinto :create "${1}";
stop;
}
}
Como Andrew Schulman apontou, parece que "existe" é sensível a maiúsculas e minúsculas. Depois de consertar isso, me deparei com um erro nos logs. Na regex
([a-zA-Z0-9][a-zA-Z0-9-_. ]+[a-zA-Z0-9.])
^
este "-" é interpretado como um intervalo de "9" a "_", ehich não é válido (embora na medida em que minha compreensão de regex seja, não deveria. Possivelmente uma peculiaridade da implementação de regex dovecots). Então o "-" aqui tem que ser escapado
([a-zA-Z0-9][a-zA-Z0-9\-_. ]+[a-zA-Z0-9.])