<br><br>enum CompileTimeOption{<br><br>&nbsp;&nbsp;&nbsp; ANCHORED £¬<br>&nbsp;&nbsp;&nbsp; AUTO_CALLOUT ,<br>&nbsp;&nbsp;&nbsp; CASELESS ,<br>&nbsp;&nbsp;&nbsp; ENDONLY&nbsp; ,<br>&nbsp;&nbsp;&nbsp; DOTALL&nbsp; ,<br>&nbsp;&nbsp;&nbsp; EXTENDED ,<br>&nbsp;&nbsp;&nbsp; EXTRA&nbsp;&nbsp; ,<br>&nbsp;&nbsp;&nbsp; FIRSTLINE ,<br>&nbsp;&nbsp;&nbsp; MULTILINE&nbsp; ,<br>&nbsp;&nbsp;&nbsp; NO_AUTO_CAPTURE&nbsp; ,<br>
&nbsp;&nbsp;&nbsp; UNGREEDY ,<br>&nbsp;&nbsp;&nbsp; UTF8 ,<br>&nbsp;&nbsp;&nbsp; NO_UTF8_CHECK&nbsp; ,<br>&nbsp;&nbsp;&nbsp; DUPNAMES&nbsp; ,<br>&nbsp;&nbsp;&nbsp; NEWLINE_CR&nbsp;&nbsp; ,<br>&nbsp;&nbsp;&nbsp; NEWLINE_LF&nbsp;&nbsp; ,<br>&nbsp;&nbsp;&nbsp; NEWLINE_CRLF&nbsp;&nbsp; ,<br>&nbsp;&nbsp;&nbsp; NEWLINE_ANY&nbsp;&nbsp; ,<br>}<br><br>public class RegExp<br>{<br>&nbsp;&nbsp;&nbsp; enum {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; X, Y, Z<br>
&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; this(char[] pattern, int options = 0){}<br>&nbsp;&nbsp;&nbsp; static RegExp opCall(char[] pattern, int option2){}<br>}<br><br>void main(){<br>&nbsp;&nbsp;&nbsp; RegExp reg1&nbsp;&nbsp;&nbsp; = new RegExp(&quot;^A.+&quot;, CompileTimeOption.UTF8 | CompileTimeOption.MULTILINE | CompileTimeOption.DOTALL );<br>
&nbsp;&nbsp;&nbsp; // Syntactic sugar.<br>&nbsp;&nbsp;&nbsp; RegExp reg2&nbsp;&nbsp;&nbsp; = new RegExp(&quot;^A.+&quot;, <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CompileTimeOption.( UTF8 | MULTILINE | DOTALL )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; );<br>&nbsp;&nbsp;&nbsp; const MyRegExpOption&nbsp;&nbsp;&nbsp; = CompileTimeOption.( UTF8 | MULTILINE | DOTALL );<br>
&nbsp;&nbsp;&nbsp; RegExp reg3&nbsp;&nbsp;&nbsp; = RegExp( &quot;^A.+&quot;,&nbsp; .(X+Y*Z) );<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; int X&nbsp;&nbsp;&nbsp; = 33;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; RegExp reg4&nbsp;&nbsp;&nbsp; = RegExp( &quot;^A.+&quot;,&nbsp; .( X+ .X /* the outer X */&nbsp; ) );<br>&nbsp;&nbsp;&nbsp; <br>}<br>