UTF8対応はリテラルと基本操作だけ。
ここらへんは5.4とかからかなあ。
そうするとC++でコンパイルしつつ外付けで
boost_regex.matchというような関数を用意しろって感じかなあ。

↓これだもんね。
static int singlematch (MatchState *ms, const char *s, const char *p,
const char *ep) {
if (s >= ms->src_end)
return 0;
else {
int c = uchar(*s);
switch (*p) {
case '.': return 1; /* matches any char */
case L_ESC: return match_class(c, uchar(*(p+1)));
case '[': return matchbracketclass(c, p, ep-1);
default: return (uchar(*p) == c);
}
}
}