Looks like it's just a constraint issue. import std.regex; void main() { enum re = ctRegex!"."; auto str = "a.b"; std.regex.splitter(str, re); } test.d(6): Error: template std.regex.splitter(Range,RegEx) if (is(BasicElementOf!(Range) : dchar) && is(RegEx == Regex!(BasicElementOf!(Range)))) does not match any function template declaration test.d(6): Error: template std.regex.splitter(Range,RegEx) if (is(BasicElementOf!(Range) : dchar) && is(RegEx == Regex!(BasicElementOf!(Range)))) cannot deduce template function from argument types !()(string,StaticRegex!(char))
https://github.com/D-Programming-Language/phobos/pull/490 BTW probably you meant ctRegex!r"\."
Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/9ce1020904a4fd99e880038686bf0cccbb1f3cff fix Issue 7679 - std.regex.split and splitter don't work w/ ctRegex https://github.com/D-Programming-Language/phobos/commit/4c3ddc268882e777f2a6dd513a633919f2795c13 Merge pull request #490 from blackwhale/regex-splitter fix Issue 7679 - std.regex.split and splitter don't work w/ ctRegex