Как можно выделить наименьшее по длине предложение из строки?
Вообще, регулярные выражения не подходят для парсинга естественного языка.
Например, совершенно валидный с точки зрения языка текстИван, недавно переехавший в город N. спросил: «Как твои дела?» - и протянул однокласснице букет полевых цветов. Она смутилась и покраснела, но букет приняла. Смеркалось...вы не разберете на предложения никакой регуляркой (и это я еще из Толстого пример не взял).
Поэтому вам сначала нужно составить формальный набор правил и ограничений, которому должен подчиняться ваш текст и только тогда мы сможем вам помочь составить под этот набор регулярное выражение.
Обновил ответ.function find_shortest_sentence($text)
{
    $sentences = preg_split('/[.!?]\s*/', $text, -1, PREG_SPLIT_NO_EMPTY);
    
    // передали некорректный текст
    if (!isset($sentences[0])) {
        throw new InvalidArgumentException('Text must contain at least one sentence.');
    }
    
    $min = array_shift($sentences);
    
    foreach ($sentences as $sentence) {
        if (mb_strlen($sentence) < mb_strlen($min)) {
            $min = $sentence;
        }
    }
    
    return $min;
}

var_dump(
    find_shortest_sentence('Первое предложение. Второе предложение. Тр предл.'),
    find_shortest_sentence('Первое предложение. Второе предложение. Тр предл')
);

// string(15) "Тр предл"
// string(15) "Тр предл"