preg_replace('#(\d.*?\s)#ui', '$1', $product->name);. Ищем слово, которое начинается с цифры, далее всё что угодно и заканчивается пробелом. Мои варианты не работают, что бы я не пробовал. Как правильно?\b(\d[\d\w.-]*)\b(\d[^ ]*)preg_match('/\b(\d[^ ]*)/', $product->name, $matches); (\d.*?)[,\s] вот так уже не захватываем пробел и запятую.