Каким образом вычленить из строки товар, бренд и модификации?
1. Составить словарь (один-ко-многим): бренд -> товары бренда
2. Через нечёткий поиск (поиск подстроки с произвольным окончанием) находим нужную строку и правая часть будет модификацией товара.
3. Задаём нужный порядок 3-х частей: бренд, товар бренда, модификация.
PS: Советую подобные вещи формировать динамически на основе данных из БД из разных колонок, чтобы больше с этим не сталкиваться...
Approximate string matching
Решал похожую проблему в Сервис по проверке на нахождение в санкционном списке?