Поиск текста среди html кода через регулярное выражение

Контекст: Делаю автотест на RobotFramework. У меня есть элемент с текстом, ссылками. Там достаточно рандомные комбинации тегов (так как у элемента разные состояния. Как решение поставил следующую задачу: надо найти регулярным выражением кириллический текст из тегов в html (теги могут иметь случайные названия), теги расположены должны быть между словами keyboard_arrow_down и keyboard_arrow_up. Мое решение:

(?=>([А-я, - ]+)<(?!((.|\n){0,100})keyboard_arrow_down)(?:.|\n){0,1500}keyboard_arrow_up)

Но оно не всегда находит нужные строки. Вот пример, когда срабатывает: https://regex101.com/r/OkW05O/3

<!doctype html>
<html data-critters-container>
    <head>
        <meta charset="utf-8">
        <title>keyboard_arrow_down</title>
        <base href="/">
        <meta name="viewport" content="width=1300px, maximum-scale=1.5">
        <meta http-equiv="X-UA-Compatible" content="НЕ ДОЛЖНО НАЙТИ">
        <Test2>Должно найти<Test3><Test2>
        <Test>Должно найти</Test>
        <noscript>
            keyboard_arrow_up
        </noscript>

Ответы (1 шт):

Автор решения: Виталий

Я нашел ошибку. Правильное регулярное выражение в итоге:

(?=>([А-я, - ]+)<(?!((.|\n){0,1500})keyboard_arrow_down)(?:.|\n){0,1500}keyboard_arrow_up)
→ Ссылка