Regex problem

James Blewitt jim at jblewitt.com
Wed Mar 28 02:25:40 PDT 2012


I am having a problem with regexes.
The following code causes a compilation error, whereas if I 
comment out the regex outside of main and comment in the regex 
inside main, it does compile.

I'm using DMD v2.058.

<code>
import std.regex;

Regex!(char) testRegex = regex("\\b(A(Z)?|B(Z)?|C(Z)?)\\b", "i");

void main() {
//	Regex!(char) testRegex = regex("\\b(A(Z)?|B(Z)?|C(Z)?)\\b", 
"i");
}
</code>

The error is:

<code>
/usr/include/d/dmd/phobos/std/regex.d(2668): Error: 
assert(re.ir[t.pc].code() == cast(IR)130u) failed
/usr/include/d/dmd/phobos/std/regex.d(2091):        called from 
here: (Kickstart!(char) __ctmp1256 = 0;
  , __ctmp1256).this(this,new uint[](256u))
/usr/include/d/dmd/phobos/std/regex.d(2146):        called from 
here: this.lightPostprocess()
/usr/include/d/dmd/phobos/std/regex.d(1958):        called from 
here: (Regex!(char) __ctmp1221 = 0;
  , __ctmp1221).this(this)
/usr/include/d/dmd/phobos/std/regex.d(6402):        called from 
here: parser.program()
regex_test.d(3):        called from here: 
regex("\\b(A(Z)?|B(Z)?|C(Z)?)\\b","i")
</code>


More information about the Digitalmars-d-bugs mailing list