Я не думаю, что есть окончательное решение. Регулярное выражение ограничено в сложном текстовом пространстве, таком как веб-страница или книга со многими аномалиями, например, как насчет названий книг? Посмотрите на использование 1) обработки на естественном языке или 2) индексного подхода, при котором вы идентифицируете два слова, начиная с заглавной буквы, разделенных на один пробел, и посмотрите, содержится ли одно из них в индексе известных имен или фамилий. удачи.