'Find multiple matches starting with number followed by unique occurrence of specific words

I have the following regex problem:

The string is: 32 Abs. 8 und 10, 37 Abs. 5 Satz 3, 39 Abs. 3 und 40 Abs. 7, 8 und 10

I want to get the output: ['32 Abs. 8 und 10', '37 Abs. 5 Satz 3', '39 Abs. 3', '40 Abs. 7, 8 und 10']

The number after und should count to the previous part, unless the number is followed by repeating Abs., Satz or Nr.. The words Abs., Satz or Nr. should only occur once after a number.

With the regex: (\d+(?: (?:Abs.|Satz|Nr.)* \d+(?:(?:, \d+)* und (?!Abs.SatzNr.) \d+)?)*)

I get: ['32 Abs. 8', '10', '37 Abs. 5 Satz 3', '39 Abs. 3', '40 Abs. 7', '8', '10']



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source