+#ifndef REH_HAS_PERL
+# define REH_HAS_PERL(R, V, S) (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S))))))
+#endif
+
+EXTERN_C void reh_save_re_context(pTHX);
+EXTERN_C regnode *reh_regnext(pTHX_ register regnode *);
+#if REH_HAS_PERL(5, 11, 0)
+EXTERN_C REGEXP *reh_pregcomp(pTHX_ SV * const, const U32);
+#else
+EXTERN_C REGEXP *reh_pregcomp(pTHX_ const SV * const, const U32);
+#endif
+#if REH_HAS_PERL(5, 11, 2)
+EXTERN_C REGEXP *reh_reg_temp_copy(pTHX_ REGEXP *, REGEXP *);
+#else
+EXTERN_C REGEXP *reh_reg_temp_copy(pTHX_ REGEXP *);
+#endif
+#if REH_HAS_PERL(5, 15, 7)
+EXTERN_C SV *reh__invlist_contents(pTHX_ SV* const);
+#endif
+
EXTERN_C const struct regexp_engine reh_regexp_engine;
EXTERN_C void reh_call_comp_begin_hook(pTHX_ regexp *);
+/* We can't use PERL_{REVISION,VERSION,SUBVERSION} here because they are not
+ * available yet at the time this file is included by reg{comp,exec}.c. */
+
#define Perl_re_compile reh_regcomp
#define Perl_re_op_compile reh_op_compile
#define Perl_regexec_flags reh_regexec
#define Perl_regprop reh_regprop
#define Perl_save_re_context reh_save_re_context
#define Perl_reg_temp_copy reh_reg_temp_copy
+#define Perl__invlist_contents reh__invlist_contents
#define Perl_reg_named_buff_fetch reh_reg_named_buff_fetch
#define Perl_reg_named_buff_exists reh_reg_named_buff_exists