Вам нужно сделать (?<value> .+)
ленивым и превратить отрицательный взгляд в положительный взгляд.
Вот моя попытка:
-(?<flag>[a-zA-Z]) (?<value>.+?)(?=$| -[a-zA-Z])
Пояснение:
Вы, наверное, удивляетесь, почему вместо негативного используется позитивный взгляд. Это связано с тем, что +?
прекращает сопоставление всякий раз, когда вещь соответствует. Вот почему мы смотрим в будущее, чтобы найти $| -[a-zA-Z]
, и если мы его найдем, +?
перестанет совпадать!
Я также переместил символ пробела за пределы группы value
. Я полагаю, вы не хотите, чтобы значение содержало пробелы?