persistable srecord RegExp(S pattern, bool caseInsensitive) { transient Pattern compiled; S error; *(S *pattern) {} java.util.regex.Pattern compile aka get() { try { compiled if null = compileRegexpPossiblyIC(pattern, caseInsensitive); error = null; ret compiled; } catch e { error = exceptionToStringShort(e); null; } } bool valid() { ret compile() != null; } }