Проще всего делать встречную выборку:
1. Выбирать существительные
2. Искать другие части речи (кроме существительных) и "вытравливать" из текста.
3. Объединить полученное в п.1 и п.2.
4. Очистить (по-возможности) результат п.3 от "мусора" (тут надо подумать: что-то с regex)
Можно попробовать
мой лисапед (PHP) для выборки частей речи.
UPD: добавлю еще по примеру в вопросе:
1. Сканируем все слова, имеющие хотя бы одну заглавную букву, любую букву и цифру, отличающийся язык (от основного, границами - считаем смену языка на основной). (Результат - 1)
2. Выбираем все одинаковые слова, находящиеся одновременно и вначале предложения, и в середине любого предложения, имеющие хотя бы одну заглавную букву внутри слова в любом месте.
(Результат- 2)
3. Объединяем результат п.1 и п.2 - получаем Результат-3.
4. Ищем слова "результата-3"в тексте и если слева или справа от слова (игнорируя всё, кроме слов) есть парный ограничитель (кавычки, скобки и т.д.) - ищем второй ограничитель и все, что находится между этих ограничителей - приклеиваем к текущему и заносим в Результат-4. Иначе - заносим само текущее слово.
5. Результат-4 - будет содержать всё, что необходимо.