De acordo com o seguinte extrato da página do manual para esperar:
"
esperar [[-opts] pat1 corpo1] ... [-opts] patn [bodyn]
aguarda até que um dos padrões corresponda à saída de um processo gerado, que um período de tempo especificado tenha passado ou que um fim de arquivo seja visto. Se o corpo final estiver vazio, pode ser omitido.
Os padrões do comando expect_before mais recente são implicitamente usados antes de qualquer outro padrão. Os padrões do comando expect_after mais recente são usados implicitamente depois de qualquer outro padrão.
Se os argumentos para toda a instrução expect exigirem mais de uma linha, todos os argumentos podem ser "colocados" em um, para evitar terminar cada linha com uma barra invertida. Neste caso, as substituições usuais de Tcl ocorrerão apesar das chaves.
Se um padrão for a palavra-chave eof, o corpo correspondente será executado no final do arquivo. Se um padrão for o tempo limite da palavra-chave, o corpo correspondente será executado no tempo limite. Se nenhuma palavra-chave timeout for usada, uma ação nula implícita será executada no tempo limite. O período de tempo limite padrão é de 10 segundos, mas pode ser definido, por exemplo, para 30, pelo comando "set timeout 30". Um tempo limite infinito pode ser designado pelo valor -1. Se um padrão for a palavra-chave default, o corpo correspondente será executado no tempo limite ou no final do arquivo.
Se um padrão corresponder, o corpo correspondente será executado. esperar retorna o resultado do corpo (ou a string vazia se nenhum padrão for correspondido). No caso de vários padrões coincidirem, o que aparece primeiro é usado para selecionar um corpo.
...
"