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