const char[] re1 = `(re)1`; const char[] re2 = `(re)2`; char[] matchWrite(RegExp re) { writefln(re.match(1),`,`,re.match(2)); return ""; } std.regexp.sub(`re1 re2`, re1~'|'~re2, &matchWrite, "g"); --- prints re, re,re // shouldn't this be `,re`?