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