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