Строка сокращается, если диапазон больше {1,40}. Но если меньше, пропадает.
preg_match('/<title[^>]*?>(.{1,40})(.*?)<\/title>/uis', $card, $title);
echo $title[1];
$title = substr($card, 0, 40);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники