Как найти в тексте слова, начинающиеся с большой буквы, которые стоят в начале и не в начале предложения?
===========================================================================================================

 Произвольном тексте необходимо вывести красным цветом все слова, начинающиеся с большой буквы, но не стоящие в начале предложения, а все такие слова, стоящие в начале предложения, подчеркнуть. Как это реализовать с помощью регулярных выражений на PHP? 

 Если принципиально делать через RE, то нужно пользоваться техникой look-ahead.  

  

Составляем регулярку для "слова с большой буквы". С помощью look-ahead проверяем, есть ли перед словом пробел и знак препинания, обозначающий конец предложения (.?!). Если да, то это первое слово в предложении. Либо если это первое слово в тексте (^). Такие слова подчеркиваем.  

Если перед словом есть пробел и другое слово или знак, не являющийся концом предложения (-,), то это просто слово с большой буквы - помечаем красным.  

  

Ничего сложного. Писать это всё не буду, напишешь сам с учетом твоих требований. 

 В два этапа.  

  

Сначала разбить текст на предложения.  

Затем разбить каждое предложение на слова.  

  

Как именно это делать, зависит от допущений, на которые вы готовы. Например, обязателен ли пробел после точки (между предложениями) и т.д.