Вы можете использовать
re.findall(r'''-?\w[\w-]*(?:=(?:"[^"]*"|'[^']*'|[^\s"']+))?''', text)
С поддержкой экранированных кавычек:
re.findall(r'''-?\w[\w-]*(?:=(?:"[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*'|[^\s"']+))?''', text)
См. Демонстрационную версию regex
Подробности
-?
- необязательный дефис \w[\w-]*
- слово char с последующим 0+ словом или дефисом (?:=(?:"[^"]*"|'[^']*'|[^\s"']+))?
- anнеобязательная последовательность =
- знак равенства (?:"[^"]*"|'[^']*'|[^\s"']+)
- либо "[^"]*"
- строка между двойными кавычками, не имеющая двойных кавычек внутри '[^']*'
- строка между одинарными кавычками, не содержащая одинарных кавычек внутри [^\s"']+
- 1+ символов, кроме пробелов, "
и '
.