function
| Library: Regular expressions (OMREGEX) Import : omregex.xmd | Returns: success or failure | 
export overloaded switch function
   try      value regexp      pattern
       into value markup sink matched optional
      
Argument definitions
Use try to try matching an input string against a regular expression. The regular expression must
        first be parsed using the function parse.
      
 You can use the function in an arbitrary pattern context like you would any other pattern
        matching function:
        
import "beta/omregex.xmd" prefixed by regex. process local regex.regexp number-pattern initial { regex.parse "[1-9][0-9]*" } repeat scan "Assume 10*10=100" match regex.try number-pattern => num output num || "%n" match any again
 If your intention is to mark up the input, you can manually match and re-emit the relevant parts of the input
        in this way together with the markup events. Alternatively, you can parenthesize the interesting parts of the
        regular expression and have regex.try emit the marked-up input into the matched parameter sink:
        
import "beta/omregex.xmd" prefixed by regex. import "omxmlwrite.xmd" prefixed by xml. process local regex.regexp number-pattern initial { regex.parse "(([1-9][0-9]*)|[^0-9]+)*" } assert "Assume 10*10=100" matches regex.try number-pattern into xml.writer into #main-output
 The output of the above example will be
          
<1 occurrence="1">Assume</1> <1 occurrence="2"><2 occurrence="1">10</2></1> <1 occurrence="3">*</1> <1 occurrence="4"><2 occurrence="2">10</2></1> <1 occurrence="5">=</1> <1 occurrence="6"><2 occurrence="3">100</2></1>
 The element named 1 corresponds to the outer parenthesized regular expression, and the element named 2 to
          the inner one. To improve the output, you can also specify the element name in curly braces immediately after
          the opening parenthesis. If you don't want any element for a particular parenthesized group, specify no
          name. The following example thus outputs 
Assume <num occurrence="1">10</num>*<num occurrence="2">10</num>=<num occurrence="3">100</num>with two simple changes:
process local regex.regexp number-pattern initial { regex.parse "({}({num}[1-9][0-9]*)|[^0-9]+)*" } assert "Assume 10*10=100" matches regex.try number-pattern into xml.writer into #main-output
 The matched output can also be processed further using do markup-parse and
        element rules.