This is something that has been requested to me some times, so I guess it would make sense to consider it. The question is how the returned value is meant to be treated. A straightforward return value would be to return a list of tuples of the extracted values for the different capturing groups or would it make sense to return a list-like data structure that would allow, for example, to extract all the elements of a single capturing group at once? @jgphpc How you would use such a function?