+ const xsh_hints_user_t *h;
+ REGEXP *RX;
+ struct regexp *rx;
+ re__engine__Plugin re;
+ char *pbuf;
+ STRLEN plen;
+ SV *obj;
+
+ h = rep_hint();
+ if (!h) /* This looks like a pragma leak. Apply the default behaviour */
+ return re_compile(pattern, flags);
+
+ /* exp/xend version of the pattern & length */
+ pbuf = SvPV((SV *) pattern, plen);
+
+ /* Our blessed object */
+ obj = newSV(0);
+ XSH_LOCAL_ALLOC(re, 1, struct replug);
+ sv_setref_pv(obj, XSH_PACKAGE, (void *) re);
+
+ newREGEXP(RX);
+ rx = rxREGEXP(RX);
+
+ re->rx = rx; /* Make the rx accessible from self->rx */
+ rx->intflags = flags; /* Flags for internal use */
+ rx->extflags = flags; /* Flags for perl to use */
+ rx->engine = RE_ENGINE_PLUGIN; /* Compile to use this engine */