Use Named Match Captures (To get data use mtch.Groups["Value"].Value
... etc) to extract the information as needed.
(?<Value>\d+) -- Get the digits
(?<Other>.+?) -- Capture all text, but minimal (greedy) capture
(?<Key>someword) -- til the keyword here.
When the above is run (with IgnorePatternWhiteSpace
otherwise remove the comments and join the pattern to run it such as (?<Value>\d+)(?<Other>.+?)(?<Key>someword)
with no regex options) it gets the data for each Data/Key pairs and organizes each in a single match.
Result
Here is the result (for your second example) which are all contained in individual matches and their groups and captures provide in each match:
Match #0
[0]: 43434˽of˽someword
["Value"] → [1]: 43434
→1 Captures: 43434
["Other"] → [2]: ˽of˽
→2 Captures: ˽of˽
["Key"] → [3]: someword
→3 Captures: someword
Match #1
[0]: 12˽anything˽someword
["Value"] → [1]: 12
→1 Captures: 12
["Other"] → [2]: ˽anything˽
→2 Captures: ˽anything˽
["Key"] → [3]: someword
→3 Captures: someword
Match #2
[0]: 2323˽new˽someword
["Value"] → [1]: 2323
→1 Captures: 2323
["Other"] → [2]: ˽new˽
→2 Captures: ˽new˽
["Key"] → [3]: someword
→3 Captures: someword
Visually here is what is matched:
