module nxt.static_regex;

/** Statically defined regular expression.
 *
 * See_Also: https://forum.dlang.org/post/mailman.4770.1596218284.31109.digitalmars-d-announce@puremagic.com
 */
auto staticRegex(string reStr)()
{
    import std.regex : regex, Regex;
    static struct Impl
    {
    @safe:
        static typeof(return) re;
        static this()
        {
            re = regex(reStr);
        }
    }
    return Impl.re;
}

//
version(none)                   // disabled for now
@safe unittest
{
    // string input;
    scope x = staticRegex!("foo(\\w+)bar");
    // auto result = input.replaceAll(x, `blah $1 bleh`);
}