De acordo com o seguinte extrato da página do manual for expect:
"espera [[-opts] pat1 body1] ... [-opts] patn [bodyn]
aguarda até que um dos padrões corresponda à saída de um processo gerado, um período de tempo especificado tenha passado ou um final de arquivo seja visto. Se o corpo final estiver vazio, ele poderá 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 implicitamente usados após quaisquer outros padrões.
Se os argumentos para toda a declaração de expectativa exigirem mais de uma linha, todos os argumentos poderão ser "agrupados" em uma, para evitar o término de cada linha com uma barra invertida. Nesse caso, as substituições usuais de Tcl ocorrerão apesar das chaves.
Se um padrão é a palavra-chave eof, o corpo correspondente é executado no final do arquivo. Se um padrão é o tempo limite da palavra-chave, o corpo correspondente é executado após o tempo limite. Se nenhuma palavra-chave de tempo limite for usada, uma ação nula implícita será executada após o tempo limite. O período de tempo limite padrão é 10 segundos, mas pode ser definido, por exemplo, como 30, pelo comando "set timeout 30". Um tempo limite infinito pode ser designado pelo valor -1. Se um padrão é a palavra-chave padrão, o corpo correspondente é executado no tempo limite ou no final do arquivo.
Se um padrão corresponder, o corpo correspondente será executado. expect retorna o resultado do corpo (ou a sequência vazia, se nenhum padrão corresponder). No caso de vários padrões coincidirem, o que aparece primeiro é usado para selecionar um corpo. ... "