Предполагая, что ваш движок регулярных выражений (Sublime) поддерживает именованные классы POSIX, вы можете использовать
^[^[:lower:]]+$
Это просто ищет строку, содержащую 1 или символы, если ни одна из них не является строчными буквами.
(далее объяснение в Regex101 )
Вы просили "предложения", а не строки. Это немного больше усилий:
(?<=^|[.?!]\s)[^[:lower:].?!]+(?:[.?!]|$)
Это ищет конец предложения (означая, что завершающие предложение символы, такие как точка, знак вопроса и восклицательный знак, не могут быть сопоставлены до конца, поэтому более длинный отрицается класс персонажей). В дополнение к сопоставлению якорей в начале и конце строки, это принимает предыдущий текст, который закончил предложение и конец предложения. Это делается путем поиска правильной пунктуации. Осмотр за спиной должен быть фиксированной ширины, поэтому я предполагаю, что после пунктуации должен быть один пробел (если после точки / вопроса / восклицания есть дополнительные пробелы, они будут просто частью совпадения).
Если в предложении есть пунктуация, заканчивающаяся предложением (например, «КУПИТЬ НА EXAMPLE.COM (ПОЖАЛУЙСТА!! ЕСЛИ ВАМ НРАВИТСЯ ЭТО.»), То это будет пропущено (будет соответствовать «КУПИТЬ НА ПРИМЕРЕ». ЭТО. ", Но это будет скучать по остальным). Существуют сложные способы обойти использование Lookaheads, но я понятия не имею, будут ли они (или вообще что-то из этого) работать в движке регулярных выражений Sublime.
(дальнейшее объяснение в Regex101 )