XPath com elemento opcional na hierarquia

Como nesteResposta de estouro de pilha imagine que você precisa selecionar uma tabela específica e, em seguida, todas as linhas dela. Devido à permissividade do HTML, os três itens a seguir são de marcação legal:

<table id="foo"><tr>...</tr></table>
<table id="foo"><tbody><tr>...</tr></tbody></table>
<table id="foo"><tr>...</tr><tbody><tr>...</tr></tbody></table>

Você está preocupado com tabelas aninhadas em tabelas e, portanto, não deseja usar um XPath como
table[@id="foo"]//tr.

Se você pudesse especificar o XPath desejado como uma expressão regular, pode ser algo como:
table[@id="foo"](/tbody)?/tr

Em geral, como você pode especificar uma expressão XPath que permita um elemento opcional na hierarquia de um seletor?

Para deixar claro, não estou tentando resolver um problema do mundo real ou selecionar um elemento específico de um documento específico. Estou pedindo técnicas para resolver uma classe de problemas.

questionAnswers(3)

yourAnswerToTheQuestion