API strmatch

Extract substrings by matching against a pattern.
 match [, match2, ...] = string.match(string, pattern[, initpos])
 match1[, match2, ...] = strmatch(string, pattern[, initpos])
==Arguments==
:; string: - The string to examine.
:; pattern: - The pattern to search for within string. This pattern is similar to Unix regular expressions, but is not the same -- see Lua Pattern matching for more details.
:; initpos: - Index of the character within string to begin searching. As is usual for Lua string functions, 1 refers to the first character of the string, 2 to the second, etc. -1 refers to the last character of the string, -2 to the second last, etc. If this argument is omitted, it defaults to 1; i.e., the search begins at the beginning of string.
==Returns==
:; match1, match2, etc.: - The matched substring(s) found within string. Multiple return values can occur.
==Discussion==
This function is similar to strfind, except that strmatch returns the actual matched strings, whereas strfind returns the starting and ending character positions, and then only those of the first match found.
Multiple return values occur when there are more than one parenthesized section within pattern. Parentheses set off each section to be returned.
If no match is found, returns nil.
==Example==
> = string.match("I have 2 questions for you.", "%d+ %a+")
2 questions
> = string.format("%d, %q", string.match("I have 2 questions for you.", "(%d+) (%a+)"))
2, "questions"