> I would rather see multipattern matchFirst and matchAll return an ordinary Captures struct, and the pattern index as an additional field for that struct. 

It will return the ordinary Captures, that will contain the number of pattern matched if any. 
It will internally have values 1-n, and 0 for no match as it makes for less space and is simpler for implementation. 

> This will allow using a singlepattern match like a multipattern match, eliminating the need for special treatment to single patterns in regexSwitch - or any other generic code that uses multipattern matching.

It still has the same treatment in generic code as single-pattern one, same opCast to bool will internally now test this != 0. No special treatment at all.

I see little use in testing for empty/no match separately from which pattern matched - what will return the `number of pattern` field in case of no match? I suggest to not pretend to have 2 independent properties when in fact there is only one.