Вы не сможете обрабатывать входной документ объемом 2 ГБ, если не переключитесь на потоковый процессор XSLT 3.0, такой как Saxon-EE.
Если вы используете потоковый процессор, то я бы предложил делая это как
<xsl:source-document href="input.xml" streamable="yes">
<xsl:if test="//text()[parent::comment][contains(.,' mypattern1234 ')]>1</xsl:if>
</xsl:source-document>
Это немного меньше затрат, если смотреть только на текстовые узлы и затем изучать их контекст, а не сопоставлять узлы элемента и затем настраивать поиск дочерних текстовых узлов.
Я ожидаю, что поиск в 2 Гб будет запущен примерно через минуту, в зависимости от вашего оборудования. Однако сканирование исходного документа должно быть остановлено, как только будет найдено совпадение, поэтому, если вы найдете совпадение в начале документа, оно будет намного быстрее, чем это.