Я не уверен, что вы можете получить результат в группе № 1, но вы можете заставить оба результата появляться в одной и той же группе .Вот пример в PowerShell:
$input1 = 'Purchase of $50.00 worth groceries is required'
$input2 = 'No monthly maintenance required'
$re = '(?:(?<xyz>No) monthly maintenance|Purchase of \$(?<xyz>[\d\.]+) worth groceries)'
$match = [regex]::Match($input1, $re)
$match.Groups['xyz']
$match = [regex]::Match($input2, $re)
$match.Groups['xyz']
Что приводит к следующему:
Success : True
Captures : {50.00}
Index : 13
Length : 5
Value : 50.00
Success : True
Captures : {No}
Index : 0
Length : 2
Value : No
Хотя не все языки поддерживают именованные группы.Поскольку PowerShell работает на .NET Framework, это будет работать для любого языка .NET.