Небольшое изменение, и ваше регулярное выражение готово.
name\s*=\s*['\"].*?['\"]
^
Почему ваше регулярное выражение не работает так, как вы хотели.Так что по природе квантификаторы являются жадными по своей природе так.будет пытаться сопоставить столько символов, сколько может.
Итак, добавив ? , мы сделаем его lazy , что означает, что теперь он будет пытаться сопоставить как можно меньше символовcan.
Демо
В случае, если вы хотите объединить оба регулярных выражения.
(name=\".*?\")\s*(value=\".*?\")|(value=\".*?\")\s*(name=\".*?\")
Демо2