В Perl это регулярное выражение, которое будет работать. Сначала он соответствует началу строки, затем соответствует одному или нескольким не = символам и устанавливает их в $ 1. Затем он ищет = затем скобки без выбора с выбором соответствия для "или" и устанавливает его в $ 2.
/^([^=]+)=(?:"([^"]+)"|'([^']+)')$/
Если вы хотите, чтобы оно совпадало с пустыми выражениями, например.
Эта = ""
Заменить последние два + на * В противном случае это должно сработать
Редактировать
Как уже упоминалось в комментариях. Дуг использовал ...
/^\s?([^=]+)\s?=\s?("([^"]+)"|\'([^\']+)\')\s?/
Это будет соответствовать одному необязательному пробелу на эфирном конце ввода или значения, и он удалил маркер конца строки.