/*===========================================================================*/
/*   (Unsafe/regex.scm)                                                      */
/*   Bigloo (4.5b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Fri Dec 22 05:17:06 PM CET 2023     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/bigloo/bin/bigloo -ldopt -L/home/serrano/prgm/project/bigloo/bigloo/libbacktrace/home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b  -srfi enable-gmp -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -rm -copt -w -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Unsafe/regex.scm -indent -o objs/obj_u/Unsafe/regex.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___REGEXP_TYPE_DEFINITIONS
#define BGL___REGEXP_TYPE_DEFINITIONS
#endif													// BGL___REGEXP_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t bgl_regfree(obj_t);
	extern obj_t BGl_stringzd2ze3numberz31zz__r4_numbers_6_5z00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_pregexpzd2quotezd2zz__regexpz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_regexpzd2patternzd2zz__regexpz00(obj_t);
	BGL_EXPORTED_DECL bool_t BGl_regexpzf3zf3zz__regexpz00(obj_t);
	extern obj_t bgl_regmatch(obj_t, char *, bool_t, int, int, int);
	static obj_t BGl_z62regexpzf3z91zz__regexpz00(obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__regexpz00 = BUNSPEC;
	static obj_t BGl_pregexpzd2readzd2escapedzd2numberzd2zz__regexpz00(obj_t,
		obj_t, long);
	static obj_t BGl__pregexpzd2matchzd2nzd2positionsz12zc0zz__regexpz00(obj_t,
		obj_t);
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__regexpz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	static obj_t BGl_pregexpzd2listzd2refz00zz__regexpz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_pregexpzd2replaceza2z70zz__regexpz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL long
		BGl_pregexpzd2matchzd2nzd2positionsz12zc0zz__regexpz00(obj_t, obj_t, obj_t,
		long, long, obj_t);
	static obj_t BGl_list1928z00zz__regexpz00 = BUNSPEC;
	static obj_t BGl_z62pregexpzd2quotezb0zz__regexpz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_pregexpzd2matchzd2positionsz00zz__regexpz00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zz__regexpz00(void);
	static obj_t BGl_genericzd2initzd2zz__regexpz00(void);
	static obj_t BGl__pregexpzd2matchzd2positionsz00zz__regexpz00(obj_t, obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zz__regexpz00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__regexpz00(void);
	static obj_t BGl_objectzd2initzd2zz__regexpz00(void);
	static obj_t BGl_pregexpzd2normaliza7ez75zz__regexpz00(obj_t);
	extern obj_t BGl_listzd2ze3stringz31zz__r4_strings_6_7z00(obj_t);
	static obj_t BGl_pregexpzd2replacezd2auxz00zz__regexpz00(obj_t, obj_t, long,
		obj_t);
	static obj_t BGl__pregexpzd2matchzd2zz__regexpz00(obj_t, obj_t);
	extern obj_t BGl_memvz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_pregexpz00zz__regexpz00(obj_t, obj_t);
	extern obj_t bgl_reverse_bang(obj_t);
	extern obj_t string_append_3(obj_t, obj_t, obj_t);
	static obj_t BGl_z62pregexpz62zz__regexpz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_pregexpzd2splitzd2zz__regexpz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_pregexpzd2replacezd2zz__regexpz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62pregexpzd2replacezb0zz__regexpz00(obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t bgl_regcomp(obj_t, obj_t, bool_t);
	static obj_t BGl_z62pregexpzd2replaceza2z12zz__regexpz00(obj_t, obj_t, obj_t,
		obj_t);
	extern obj_t c_substring(obj_t, long, long);
	static obj_t BGl_z62regexpzd2patternzb0zz__regexpz00(obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zz__regexpz00(void);
	static obj_t BGl_z62regexpzd2capturezd2countz62zz__regexpz00(obj_t, obj_t);
	extern obj_t blit_string(obj_t, long, obj_t, long, long);
	BGL_EXPORTED_DECL obj_t BGl_pregexpzd2matchzd2zz__regexpz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62pregexpzd2splitzb0zz__regexpz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL long BGl_regexpzd2capturezd2countz00zz__regexpz00(obj_t);
	extern obj_t make_string(long, unsigned char);
	extern obj_t string_append(obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_pregexpzd2envzd2zz__regexpz00,
		BgL_bgl_za762pregexpza762za7za7_1931z00, va_generic_entry,
		BGl_z62pregexpz62zz__regexpz00, BUNSPEC, -2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_regexpzd2capturezd2countzd2envzd2zz__regexpz00,
		BgL_bgl_za762regexpza7d2capt1932z00,
		BGl_z62regexpzd2capturezd2countz62zz__regexpz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_pregexpzd2splitzd2envz00zz__regexpz00,
		BgL_bgl_za762pregexpza7d2spl1933z00, BGl_z62pregexpzd2splitzb0zz__regexpz00,
		0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_pregexpzd2quotezd2envz00zz__regexpz00,
		BgL_bgl_za762pregexpza7d2quo1934z00, BGl_z62pregexpzd2quotezb0zz__regexpz00,
		0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_regexpzd2patternzd2envz00zz__regexpz00,
		BgL_bgl_za762regexpza7d2patt1935z00,
		BGl_z62regexpzd2patternzb0zz__regexpz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_pregexpzd2replacezd2envz00zz__regexpz00,
		BgL_bgl_za762pregexpza7d2rep1936z00,
		BGl_z62pregexpzd2replacezb0zz__regexpz00, 0L, BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_regexpzf3zd2envz21zz__regexpz00,
		BgL_bgl_za762regexpza7f3za791za71937z00, BGl_z62regexpzf3z91zz__regexpz00,
		0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_pregexpzd2replaceza2zd2envza2zz__regexpz00,
		BgL_bgl_za762pregexpza7d2rep1938z00,
		BGl_z62pregexpzd2replaceza2z12zz__regexpz00, 0L, BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_pregexpzd2matchzd2nzd2positionsz12zd2envz12zz__regexpz00,
		BgL_bgl__pregexpza7d2match1939za7, opt_generic_entry,
		BGl__pregexpzd2matchzd2nzd2positionsz12zc0zz__regexpz00, BFALSE, -1);
	      DEFINE_STRING(BGl_string1907z00zz__regexpz00,
		BgL_bgl_string1907za700za7za7_1940za7,
		"/tmp/bigloo/runtime/Unsafe/regex.scm", 36);
	      DEFINE_STRING(BGl_string1908z00zz__regexpz00,
		BgL_bgl_string1908za700za7za7_1941za7, "&regexp-pattern", 15);
	      DEFINE_STRING(BGl_string1909z00zz__regexpz00,
		BgL_bgl_string1909za700za7za7_1942za7, "regexp", 6);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_pregexpzd2matchzd2positionszd2envzd2zz__regexpz00,
		BgL_bgl__pregexpza7d2match1943za7, opt_generic_entry,
		BGl__pregexpzd2matchzd2positionsz00zz__regexpz00, BFALSE, -1);
	      DEFINE_STRING(BGl_string1910z00zz__regexpz00,
		BgL_bgl_string1910za700za7za7_1944za7, "&regexp-capture-count", 21);
	      DEFINE_STRING(BGl_string1911z00zz__regexpz00,
		BgL_bgl_string1911za700za7za7_1945za7, "[A-Za-z0-9_]", 12);
	      DEFINE_STRING(BGl_string1912z00zz__regexpz00,
		BgL_bgl_string1912za700za7za7_1946za7, "[^A-Za-z0-9_]", 13);
	      DEFINE_STRING(BGl_string1913z00zz__regexpz00,
		BgL_bgl_string1913za700za7za7_1947za7, "[0-9]", 5);
	      DEFINE_STRING(BGl_string1914z00zz__regexpz00,
		BgL_bgl_string1914za700za7za7_1948za7, "[^0-9]", 6);
	      DEFINE_STRING(BGl_string1915z00zz__regexpz00,
		BgL_bgl_string1915za700za7za7_1949za7, "[ \t\r\n\v\f]", 8);
	      DEFINE_STRING(BGl_string1916z00zz__regexpz00,
		BgL_bgl_string1916za700za7za7_1950za7, "[^ \t\r\n\v\f]", 9);
	      DEFINE_STRING(BGl_string1917z00zz__regexpz00,
		BgL_bgl_string1917za700za7za7_1951za7, "&pregexp", 8);
	      DEFINE_STRING(BGl_string1918z00zz__regexpz00,
		BgL_bgl_string1918za700za7za7_1952za7, "bstring", 7);
	      DEFINE_STRING(BGl_string1919z00zz__regexpz00,
		BgL_bgl_string1919za700za7za7_1953za7, "_pregexp-match-positions", 24);
	      DEFINE_STRING(BGl_string1920z00zz__regexpz00,
		BgL_bgl_string1920za700za7za7_1954za7, "bint", 4);
	      DEFINE_STRING(BGl_string1921z00zz__regexpz00,
		BgL_bgl_string1921za700za7za7_1955za7, "_pregexp-match", 14);
	      DEFINE_STRING(BGl_string1922z00zz__regexpz00,
		BgL_bgl_string1922za700za7za7_1956za7, "_pregexp-match-n-positions!", 27);
	      DEFINE_STRING(BGl_string1923z00zz__regexpz00,
		BgL_bgl_string1923za700za7za7_1957za7, "vector", 6);
	      DEFINE_STRING(BGl_string1924z00zz__regexpz00,
		BgL_bgl_string1924za700za7za7_1958za7, "", 0);
	      DEFINE_STRING(BGl_string1925z00zz__regexpz00,
		BgL_bgl_string1925za700za7za7_1959za7, "&pregexp-split", 14);
	      DEFINE_STRING(BGl_string1926z00zz__regexpz00,
		BgL_bgl_string1926za700za7za7_1960za7, "&pregexp-replace", 16);
	      DEFINE_STRING(BGl_string1927z00zz__regexpz00,
		BgL_bgl_string1927za700za7za7_1961za7, "&pregexp-replace*", 17);
	      DEFINE_STRING(BGl_string1929z00zz__regexpz00,
		BgL_bgl_string1929za700za7za7_1962za7, "&pregexp-quote", 14);
	      DEFINE_STRING(BGl_string1930z00zz__regexpz00,
		BgL_bgl_string1930za700za7za7_1963za7, "__regexp", 8);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_pregexpzd2matchzd2envz00zz__regexpz00,
		BgL_bgl__pregexpza7d2match1964za7, opt_generic_entry,
		BGl__pregexpzd2matchzd2zz__regexpz00, BFALSE, -1);

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;
		     ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__regexpz00));
		     ADD_ROOT((void *) (&BGl_list1928z00zz__regexpz00));
#undef ADD_ROOT
		if   (roots_max > 0)
			     GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		     return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__regexpz00(long
		BgL_checksumz00_2597, char *BgL_fromz00_2598)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__regexpz00))
				{
					BGl_requirezd2initializa7ationz75zz__regexpz00 = BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zz__regexpz00();
					BGl_cnstzd2initzd2zz__regexpz00();
					BGl_importedzd2moduleszd2initz00zz__regexpz00();
					return BGl_methodzd2initzd2zz__regexpz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__regexpz00(void)
	{
		{	/* Unsafe/regex.scm 15 */
			return (BGl_list1928z00zz__regexpz00 =
				MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '\\')),
					MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '.')),
						MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '?')),
							MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '*')),
								MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '+')),
									MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '|')),
										MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '^')),
											MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '$')),
												MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '[')),
													MAKE_YOUNG_PAIR(BCHAR(((unsigned char) ']')),
														MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '{')),
															MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '}')),
																MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '(')),
																	MAKE_YOUNG_PAIR(BCHAR(((unsigned char) ')')),
																		BNIL)))))))))))))), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__regexpz00(void)
	{
		{	/* Unsafe/regex.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* regexp? */
	BGL_EXPORTED_DEF bool_t BGl_regexpzf3zf3zz__regexpz00(obj_t BgL_objz00_3)
	{
		{	/* Unsafe/regex.scm 83 */
			return BGL_REGEXPP(BgL_objz00_3);
		}

	}



/* &regexp? */
	obj_t BGl_z62regexpzf3z91zz__regexpz00(obj_t BgL_envz00_2473,
		obj_t BgL_objz00_2474)
	{
		{	/* Unsafe/regex.scm 83 */
			return BBOOL(BGl_regexpzf3zf3zz__regexpz00(BgL_objz00_2474));
		}

	}



/* regexp-pattern */
	BGL_EXPORTED_DEF obj_t BGl_regexpzd2patternzd2zz__regexpz00(obj_t BgL_rez00_4)
	{
		{	/* Unsafe/regex.scm 89 */
			return BGL_REGEXP_PAT(BgL_rez00_4);
		}

	}



/* &regexp-pattern */
	obj_t BGl_z62regexpzd2patternzb0zz__regexpz00(obj_t BgL_envz00_2475,
		obj_t BgL_rez00_2476)
	{
		{	/* Unsafe/regex.scm 89 */
			{	/* Unsafe/regex.scm 90 */
				obj_t BgL_auxz00_2639;

				if (BGl_regexpzf3zf3zz__regexpz00(BgL_rez00_2476))
					{	/* Unsafe/regex.scm 90 */
						BgL_auxz00_2639 = BgL_rez00_2476;
					}
				else
					{
						obj_t BgL_auxz00_2642;

						BgL_auxz00_2642 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(3765L), BGl_string1908z00zz__regexpz00,
							BGl_string1909z00zz__regexpz00, BgL_rez00_2476);
						FAILURE(BgL_auxz00_2642, BFALSE, BFALSE);
					}
				return BGl_regexpzd2patternzd2zz__regexpz00(BgL_auxz00_2639);
			}
		}

	}



/* regexp-capture-count */
	BGL_EXPORTED_DEF long BGl_regexpzd2capturezd2countz00zz__regexpz00(obj_t
		BgL_rez00_5)
	{
		{	/* Unsafe/regex.scm 95 */
			return BGL_REGEXP_CAPTURE_COUNT(BgL_rez00_5);
		}

	}



/* &regexp-capture-count */
	obj_t BGl_z62regexpzd2capturezd2countz62zz__regexpz00(obj_t BgL_envz00_2477,
		obj_t BgL_rez00_2478)
	{
		{	/* Unsafe/regex.scm 95 */
			{	/* Unsafe/regex.scm 96 */
				long BgL_tmpz00_2648;

				{	/* Unsafe/regex.scm 96 */
					obj_t BgL_auxz00_2649;

					if (BGl_regexpzf3zf3zz__regexpz00(BgL_rez00_2478))
						{	/* Unsafe/regex.scm 96 */
							BgL_auxz00_2649 = BgL_rez00_2478;
						}
					else
						{
							obj_t BgL_auxz00_2652;

							BgL_auxz00_2652 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
								BINT(4054L), BGl_string1910z00zz__regexpz00,
								BGl_string1909z00zz__regexpz00, BgL_rez00_2478);
							FAILURE(BgL_auxz00_2652, BFALSE, BFALSE);
						}
					BgL_tmpz00_2648 =
						BGl_regexpzd2capturezd2countz00zz__regexpz00(BgL_auxz00_2649);
				}
				return BINT(BgL_tmpz00_2648);
			}
		}

	}



/* pregexp-normalize */
	obj_t BGl_pregexpzd2normaliza7ez75zz__regexpz00(obj_t BgL_rez00_6)
	{
		{	/* Unsafe/regex.scm 110 */
			{
				obj_t BgL_rez00_1213;
				long BgL_cz00_1214;
				obj_t BgL_rez00_1188;

				{	/* Unsafe/regex.scm 164 */
					long BgL_cz00_1186;

					BgL_rez00_1188 = BgL_rez00_6;
					{	/* Unsafe/regex.scm 113 */
						long BgL_lenz00_1190;

						BgL_lenz00_1190 = STRING_LENGTH(((obj_t) BgL_rez00_1188));
						{
							long BgL_iz00_1192;
							long BgL_cz00_1193;

							BgL_iz00_1192 = 0L;
							BgL_cz00_1193 = 0L;
						BgL_zc3z04anonymousza31211ze3z87_1194:
							if ((BgL_iz00_1192 >= (BgL_lenz00_1190 - 1L)))
								{	/* Unsafe/regex.scm 117 */
									BgL_cz00_1186 = BgL_cz00_1193;
								}
							else
								{	/* Unsafe/regex.scm 117 */
									if (
										(STRING_REF(
												((obj_t) BgL_rez00_1188),
												BgL_iz00_1192) == ((unsigned char) '\\')))
										{
											long BgL_cz00_2669;
											long BgL_iz00_2667;

											BgL_iz00_2667 = (BgL_iz00_1192 + 2L);
											{	/* Unsafe/regex.scm 121 */
												long BgL_tmpz00_2670;

												switch (STRING_REF(
														((obj_t) BgL_rez00_1188), (BgL_iz00_1192 + 1L)))
													{
													case ((unsigned char) 'w'):

														BgL_tmpz00_2670 = 10L;
														break;
													case ((unsigned char) 'W'):

														BgL_tmpz00_2670 = 11L;
														break;
													case ((unsigned char) 'd'):

														BgL_tmpz00_2670 = 3L;
														break;
													case ((unsigned char) 'D'):

														BgL_tmpz00_2670 = 4L;
														break;
													case ((unsigned char) 's'):

														BgL_tmpz00_2670 = 6L;
														break;
													case ((unsigned char) 'S'):

														BgL_tmpz00_2670 = 7L;
														break;
													default:
														BgL_tmpz00_2670 = 0L;
													}
												BgL_cz00_2669 = (BgL_cz00_1193 + BgL_tmpz00_2670);
											}
											BgL_cz00_1193 = BgL_cz00_2669;
											BgL_iz00_1192 = BgL_iz00_2667;
											goto BgL_zc3z04anonymousza31211ze3z87_1194;
										}
									else
										{
											long BgL_iz00_2676;

											BgL_iz00_2676 = (BgL_iz00_1192 + 1L);
											BgL_iz00_1192 = BgL_iz00_2676;
											goto BgL_zc3z04anonymousza31211ze3z87_1194;
										}
								}
						}
					}
					if ((BgL_cz00_1186 == 0L))
						{	/* Unsafe/regex.scm 165 */
							return BgL_rez00_6;
						}
					else
						{	/* Unsafe/regex.scm 165 */
							BgL_rez00_1213 = BgL_rez00_6;
							BgL_cz00_1214 = BgL_cz00_1186;
							{	/* Unsafe/regex.scm 133 */
								long BgL_lenz00_1216;

								BgL_lenz00_1216 = STRING_LENGTH(((obj_t) BgL_rez00_1213));
								{	/* Unsafe/regex.scm 133 */
									obj_t BgL_newz00_1217;

									{	/* Unsafe/regex.scm 134 */
										long BgL_arg1323z00_1261;

										BgL_arg1323z00_1261 = (BgL_lenz00_1216 + BgL_cz00_1214);
										{	/* Ieee/string.scm 168 */

											BgL_newz00_1217 =
												make_string(BgL_arg1323z00_1261, ((unsigned char) ' '));
									}}
									{	/* Unsafe/regex.scm 134 */

										{
											long BgL_iz00_1219;
											long BgL_jz00_1220;

											BgL_iz00_1219 = 0L;
											BgL_jz00_1220 = 0L;
										BgL_zc3z04anonymousza31230ze3z87_1221:
											if ((BgL_iz00_1219 >= (BgL_lenz00_1216 - 1L)))
												{	/* Unsafe/regex.scm 138 */
													if ((BgL_iz00_1219 < BgL_lenz00_1216))
														{	/* Unsafe/regex.scm 140 */
															unsigned char BgL_arg1237z00_1225;

															BgL_arg1237z00_1225 =
																STRING_REF(
																((obj_t) BgL_rez00_1213), BgL_iz00_1219);
															STRING_SET(BgL_newz00_1217, BgL_jz00_1220,
																BgL_arg1237z00_1225);
														}
													else
														{	/* Unsafe/regex.scm 139 */
															BFALSE;
														}
													return BgL_newz00_1217;
												}
											else
												{	/* Unsafe/regex.scm 138 */
													if (
														(STRING_REF(
																((obj_t) BgL_rez00_1213),
																BgL_iz00_1219) == ((unsigned char) '\\')))
														{

															{	/* Unsafe/regex.scm 143 */
																unsigned char BgL_aux1045z00_1229;

																BgL_aux1045z00_1229 =
																	STRING_REF(
																	((obj_t) BgL_rez00_1213),
																	(BgL_iz00_1219 + 1L));
																switch (BgL_aux1045z00_1229)
																	{
																	case ((unsigned char) 'w'):

																		{	/* Unsafe/regex.scm 145 */
																			long BgL_arg1244z00_1231;
																			long BgL_arg1246z00_1232;

																			BgL_arg1244z00_1231 =
																				(BgL_iz00_1219 + 2L);
																			{	/* Unsafe/regex.scm 145 */
																				long BgL_arg1247z00_1233;

																				blit_string
																					(BGl_string1911z00zz__regexpz00, 0L,
																					BgL_newz00_1217, BgL_jz00_1220, 12L);
																				BgL_arg1247z00_1233 = 12L;
																				BgL_arg1246z00_1232 =
																					(BgL_jz00_1220 + BgL_arg1247z00_1233);
																			}
																			{
																				long BgL_jz00_2703;
																				long BgL_iz00_2702;

																				BgL_iz00_2702 = BgL_arg1244z00_1231;
																				BgL_jz00_2703 = BgL_arg1246z00_1232;
																				BgL_jz00_1220 = BgL_jz00_2703;
																				BgL_iz00_1219 = BgL_iz00_2702;
																				goto
																					BgL_zc3z04anonymousza31230ze3z87_1221;
																			}
																		}
																		break;
																	case ((unsigned char) 'W'):

																		{	/* Unsafe/regex.scm 147 */
																			long BgL_arg1248z00_1234;
																			long BgL_arg1249z00_1235;

																			BgL_arg1248z00_1234 =
																				(BgL_iz00_1219 + 2L);
																			{	/* Unsafe/regex.scm 147 */
																				long BgL_arg1250z00_1236;

																				blit_string
																					(BGl_string1912z00zz__regexpz00, 0L,
																					BgL_newz00_1217, BgL_jz00_1220, 13L);
																				BgL_arg1250z00_1236 = 13L;
																				BgL_arg1249z00_1235 =
																					(BgL_jz00_1220 + BgL_arg1250z00_1236);
																			}
																			{
																				long BgL_jz00_2708;
																				long BgL_iz00_2707;

																				BgL_iz00_2707 = BgL_arg1248z00_1234;
																				BgL_jz00_2708 = BgL_arg1249z00_1235;
																				BgL_jz00_1220 = BgL_jz00_2708;
																				BgL_iz00_1219 = BgL_iz00_2707;
																				goto
																					BgL_zc3z04anonymousza31230ze3z87_1221;
																			}
																		}
																		break;
																	case ((unsigned char) 'd'):

																		{	/* Unsafe/regex.scm 149 */
																			long BgL_arg1252z00_1237;
																			long BgL_arg1253z00_1238;

																			BgL_arg1252z00_1237 =
																				(BgL_iz00_1219 + 2L);
																			{	/* Unsafe/regex.scm 149 */
																				long BgL_arg1254z00_1239;

																				blit_string
																					(BGl_string1913z00zz__regexpz00, 0L,
																					BgL_newz00_1217, BgL_jz00_1220, 5L);
																				BgL_arg1254z00_1239 = 5L;
																				BgL_arg1253z00_1238 =
																					(BgL_jz00_1220 + BgL_arg1254z00_1239);
																			}
																			{
																				long BgL_jz00_2713;
																				long BgL_iz00_2712;

																				BgL_iz00_2712 = BgL_arg1252z00_1237;
																				BgL_jz00_2713 = BgL_arg1253z00_1238;
																				BgL_jz00_1220 = BgL_jz00_2713;
																				BgL_iz00_1219 = BgL_iz00_2712;
																				goto
																					BgL_zc3z04anonymousza31230ze3z87_1221;
																			}
																		}
																		break;
																	case ((unsigned char) 'D'):

																		{	/* Unsafe/regex.scm 151 */
																			long BgL_arg1256z00_1240;
																			long BgL_arg1257z00_1241;

																			BgL_arg1256z00_1240 =
																				(BgL_iz00_1219 + 2L);
																			{	/* Unsafe/regex.scm 151 */
																				long BgL_arg1259z00_1242;

																				blit_string
																					(BGl_string1914z00zz__regexpz00, 0L,
																					BgL_newz00_1217, BgL_jz00_1220, 6L);
																				BgL_arg1259z00_1242 = 6L;
																				BgL_arg1257z00_1241 =
																					(BgL_jz00_1220 + BgL_arg1259z00_1242);
																			}
																			{
																				long BgL_jz00_2718;
																				long BgL_iz00_2717;

																				BgL_iz00_2717 = BgL_arg1256z00_1240;
																				BgL_jz00_2718 = BgL_arg1257z00_1241;
																				BgL_jz00_1220 = BgL_jz00_2718;
																				BgL_iz00_1219 = BgL_iz00_2717;
																				goto
																					BgL_zc3z04anonymousza31230ze3z87_1221;
																			}
																		}
																		break;
																	case ((unsigned char) 's'):

																		{	/* Unsafe/regex.scm 153 */
																			long BgL_arg1260z00_1243;
																			long BgL_arg1265z00_1244;

																			BgL_arg1260z00_1243 =
																				(BgL_iz00_1219 + 2L);
																			{	/* Unsafe/regex.scm 153 */
																				long BgL_arg1275z00_1245;

																				blit_string
																					(BGl_string1915z00zz__regexpz00, 0L,
																					BgL_newz00_1217, BgL_jz00_1220, 8L);
																				BgL_arg1275z00_1245 = 8L;
																				BgL_arg1265z00_1244 =
																					(BgL_jz00_1220 + BgL_arg1275z00_1245);
																			}
																			{
																				long BgL_jz00_2723;
																				long BgL_iz00_2722;

																				BgL_iz00_2722 = BgL_arg1260z00_1243;
																				BgL_jz00_2723 = BgL_arg1265z00_1244;
																				BgL_jz00_1220 = BgL_jz00_2723;
																				BgL_iz00_1219 = BgL_iz00_2722;
																				goto
																					BgL_zc3z04anonymousza31230ze3z87_1221;
																			}
																		}
																		break;
																	case ((unsigned char) 'S'):

																		{	/* Unsafe/regex.scm 155 */
																			long BgL_arg1276z00_1246;
																			long BgL_arg1277z00_1247;

																			BgL_arg1276z00_1246 =
																				(BgL_iz00_1219 + 2L);
																			{	/* Unsafe/regex.scm 155 */
																				long BgL_arg1279z00_1248;

																				blit_string
																					(BGl_string1916z00zz__regexpz00, 0L,
																					BgL_newz00_1217, BgL_jz00_1220, 9L);
																				BgL_arg1279z00_1248 = 9L;
																				BgL_arg1277z00_1247 =
																					(BgL_jz00_1220 + BgL_arg1279z00_1248);
																			}
																			{
																				long BgL_jz00_2728;
																				long BgL_iz00_2727;

																				BgL_iz00_2727 = BgL_arg1276z00_1246;
																				BgL_jz00_2728 = BgL_arg1277z00_1247;
																				BgL_jz00_1220 = BgL_jz00_2728;
																				BgL_iz00_1219 = BgL_iz00_2727;
																				goto
																					BgL_zc3z04anonymousza31230ze3z87_1221;
																			}
																		}
																		break;
																	default:
																		STRING_SET(BgL_newz00_1217, BgL_jz00_1220,
																			((unsigned char) '\\'));
																		{	/* Unsafe/regex.scm 158 */
																			long BgL_arg1282z00_1250;
																			unsigned char BgL_arg1283z00_1251;

																			BgL_arg1282z00_1250 =
																				(BgL_jz00_1220 + 1L);
																			BgL_arg1283z00_1251 =
																				STRING_REF(
																				((obj_t) BgL_rez00_1213),
																				(BgL_iz00_1219 + 1L));
																			STRING_SET(BgL_newz00_1217,
																				BgL_arg1282z00_1250,
																				BgL_arg1283z00_1251);
																		}
																		{
																			long BgL_jz00_2737;
																			long BgL_iz00_2735;

																			BgL_iz00_2735 = (BgL_iz00_1219 + 2L);
																			BgL_jz00_2737 = (BgL_jz00_1220 + 2L);
																			BgL_jz00_1220 = BgL_jz00_2737;
																			BgL_iz00_1219 = BgL_iz00_2735;
																			goto
																				BgL_zc3z04anonymousza31230ze3z87_1221;
																		}
																	}
															}
														}
													else
														{	/* Unsafe/regex.scm 142 */
															{	/* Unsafe/regex.scm 161 */
																unsigned char BgL_arg1289z00_1255;

																BgL_arg1289z00_1255 =
																	STRING_REF(
																	((obj_t) BgL_rez00_1213), BgL_iz00_1219);
																STRING_SET(BgL_newz00_1217, BgL_jz00_1220,
																	BgL_arg1289z00_1255);
															}
															{
																long BgL_jz00_2745;
																long BgL_iz00_2743;

																BgL_iz00_2743 = (BgL_iz00_1219 + 1L);
																BgL_jz00_2745 = (BgL_jz00_1220 + 1L);
																BgL_jz00_1220 = BgL_jz00_2745;
																BgL_iz00_1219 = BgL_iz00_2743;
																goto BgL_zc3z04anonymousza31230ze3z87_1221;
															}
														}
												}
										}
									}
								}
							}
						}
				}
			}
		}

	}



/* pregexp */
	BGL_EXPORTED_DEF obj_t BGl_pregexpz00zz__regexpz00(obj_t BgL_rez00_7,
		obj_t BgL_optzd2argszd2_8)
	{
		{	/* Unsafe/regex.scm 172 */
			return
				bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00(BgL_rez00_7),
				BgL_optzd2argszd2_8, ((bool_t) 1));
		}

	}



/* &pregexp */
	obj_t BGl_z62pregexpz62zz__regexpz00(obj_t BgL_envz00_2479,
		obj_t BgL_rez00_2480, obj_t BgL_optzd2argszd2_2481)
	{
		{	/* Unsafe/regex.scm 172 */
			{	/* Unsafe/regex.scm 173 */
				obj_t BgL_auxz00_2749;

				if (STRINGP(BgL_rez00_2480))
					{	/* Unsafe/regex.scm 173 */
						BgL_auxz00_2749 = BgL_rez00_2480;
					}
				else
					{
						obj_t BgL_auxz00_2752;

						BgL_auxz00_2752 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(6633L), BGl_string1917z00zz__regexpz00,
							BGl_string1918z00zz__regexpz00, BgL_rez00_2480);
						FAILURE(BgL_auxz00_2752, BFALSE, BFALSE);
					}
				return
					BGl_pregexpz00zz__regexpz00(BgL_auxz00_2749, BgL_optzd2argszd2_2481);
			}
		}

	}



/* _pregexp-match-positions */
	obj_t BGl__pregexpzd2matchzd2positionsz00zz__regexpz00(obj_t
		BgL_env1124z00_23, obj_t BgL_opt1123z00_22)
	{
		{	/* Unsafe/regex.scm 189 */
			{	/* Unsafe/regex.scm 189 */
				obj_t BgL_patz00_1280;
				obj_t BgL_strz00_1281;

				BgL_patz00_1280 = VECTOR_REF(BgL_opt1123z00_22, 0L);
				BgL_strz00_1281 = VECTOR_REF(BgL_opt1123z00_22, 1L);
				switch (VECTOR_LENGTH(BgL_opt1123z00_22))
					{
					case 2L:

						{	/* Unsafe/regex.scm 189 */
							long BgL_endz00_1285;

							{	/* Unsafe/regex.scm 189 */
								obj_t BgL_stringz00_2026;

								if (STRINGP(BgL_strz00_1281))
									{	/* Unsafe/regex.scm 189 */
										BgL_stringz00_2026 = BgL_strz00_1281;
									}
								else
									{
										obj_t BgL_auxz00_2761;

										BgL_auxz00_2761 =
											BGl_typezd2errorzd2zz__errorz00
											(BGl_string1907z00zz__regexpz00, BINT(7464L),
											BGl_string1919z00zz__regexpz00,
											BGl_string1918z00zz__regexpz00, BgL_strz00_1281);
										FAILURE(BgL_auxz00_2761, BFALSE, BFALSE);
									}
								BgL_endz00_1285 = STRING_LENGTH(BgL_stringz00_2026);
							}
							{	/* Unsafe/regex.scm 189 */

								{	/* Unsafe/regex.scm 189 */
									obj_t BgL_strz00_2027;

									if (STRINGP(BgL_strz00_1281))
										{	/* Unsafe/regex.scm 189 */
											BgL_strz00_2027 = BgL_strz00_1281;
										}
									else
										{
											obj_t BgL_auxz00_2768;

											BgL_auxz00_2768 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string1907z00zz__regexpz00, BINT(7399L),
												BGl_string1919z00zz__regexpz00,
												BGl_string1918z00zz__regexpz00, BgL_strz00_1281);
											FAILURE(BgL_auxz00_2768, BFALSE, BFALSE);
										}
									if (BGL_REGEXPP(BgL_patz00_1280))
										{	/* Unsafe/regex.scm 180 */
											obj_t BgL_tmpz00_2774;

											if (BGl_regexpzf3zf3zz__regexpz00(BgL_patz00_1280))
												{	/* Unsafe/regex.scm 180 */
													BgL_tmpz00_2774 = BgL_patz00_1280;
												}
											else
												{
													obj_t BgL_auxz00_2777;

													BgL_auxz00_2777 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string1907z00zz__regexpz00, BINT(6996L),
														BGl_string1919z00zz__regexpz00,
														BGl_string1909z00zz__regexpz00, BgL_patz00_1280);
													FAILURE(BgL_auxz00_2777, BFALSE, BFALSE);
												}
											return
												bgl_regmatch(BgL_tmpz00_2774,
												BSTRING_TO_STRING(BgL_strz00_2027), ((bool_t) 0),
												(int) (0L), (int) (BgL_endz00_1285), (int) (0L));
										}
									else
										{	/* Unsafe/regex.scm 181 */
											obj_t BgL_rxz00_2029;

											{	/* Unsafe/regex.scm 181 */
												obj_t BgL_arg1327z00_2030;

												BgL_arg1327z00_2030 =
													BGl_pregexpzd2normaliza7ez75zz__regexpz00
													(BgL_patz00_1280);
												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_tmpz00_2787;

													if (STRINGP(BgL_arg1327z00_2030))
														{	/* Unsafe/regex.scm 181 */
															BgL_tmpz00_2787 = BgL_arg1327z00_2030;
														}
													else
														{
															obj_t BgL_auxz00_2790;

															BgL_auxz00_2790 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string1907z00zz__regexpz00, BINT(7080L),
																BGl_string1919z00zz__regexpz00,
																BGl_string1918z00zz__regexpz00,
																BgL_arg1327z00_2030);
															FAILURE(BgL_auxz00_2790, BFALSE, BFALSE);
														}
													BgL_rxz00_2029 =
														bgl_regcomp(BgL_tmpz00_2787, BNIL, ((bool_t) 0));
												}
											}
											{	/* Unsafe/regex.scm 181 */
												obj_t BgL_valz00_2031;

												BgL_valz00_2031 =
													bgl_regmatch(BgL_rxz00_2029,
													BSTRING_TO_STRING(BgL_strz00_2027), ((bool_t) 0),
													(int) (0L), (int) (BgL_endz00_1285), (int) (0L));
												{	/* Unsafe/regex.scm 182 */

													bgl_regfree(BgL_rxz00_2029);
													return BgL_valz00_2031;
												}
											}
										}
								}
							}
						}
						break;
					case 3L:

						{	/* Unsafe/regex.scm 189 */
							obj_t BgL_begz00_1287;

							BgL_begz00_1287 = VECTOR_REF(BgL_opt1123z00_22, 2L);
							{	/* Unsafe/regex.scm 189 */
								long BgL_endz00_1288;

								{	/* Unsafe/regex.scm 189 */
									obj_t BgL_stringz00_2032;

									if (STRINGP(BgL_strz00_1281))
										{	/* Unsafe/regex.scm 189 */
											BgL_stringz00_2032 = BgL_strz00_1281;
										}
									else
										{
											obj_t BgL_auxz00_2804;

											BgL_auxz00_2804 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string1907z00zz__regexpz00, BINT(7464L),
												BGl_string1919z00zz__regexpz00,
												BGl_string1918z00zz__regexpz00, BgL_strz00_1281);
											FAILURE(BgL_auxz00_2804, BFALSE, BFALSE);
										}
									BgL_endz00_1288 = STRING_LENGTH(BgL_stringz00_2032);
								}
								{	/* Unsafe/regex.scm 189 */

									{	/* Unsafe/regex.scm 189 */
										obj_t BgL_strz00_2033;

										if (STRINGP(BgL_strz00_1281))
											{	/* Unsafe/regex.scm 189 */
												BgL_strz00_2033 = BgL_strz00_1281;
											}
										else
											{
												obj_t BgL_auxz00_2811;

												BgL_auxz00_2811 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(7399L),
													BGl_string1919z00zz__regexpz00,
													BGl_string1918z00zz__regexpz00, BgL_strz00_1281);
												FAILURE(BgL_auxz00_2811, BFALSE, BFALSE);
											}
										if (BGL_REGEXPP(BgL_patz00_1280))
											{	/* Unsafe/regex.scm 180 */
												int BgL_auxz00_2824;
												obj_t BgL_tmpz00_2817;

												{	/* Unsafe/regex.scm 180 */
													obj_t BgL_tmpz00_2826;

													if (INTEGERP(BgL_begz00_1287))
														{	/* Unsafe/regex.scm 180 */
															BgL_tmpz00_2826 = BgL_begz00_1287;
														}
													else
														{
															obj_t BgL_auxz00_2829;

															BgL_auxz00_2829 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string1907z00zz__regexpz00, BINT(7012L),
																BGl_string1919z00zz__regexpz00,
																BGl_string1920z00zz__regexpz00,
																BgL_begz00_1287);
															FAILURE(BgL_auxz00_2829, BFALSE, BFALSE);
														}
													BgL_auxz00_2824 = CINT(BgL_tmpz00_2826);
												}
												if (BGl_regexpzf3zf3zz__regexpz00(BgL_patz00_1280))
													{	/* Unsafe/regex.scm 180 */
														BgL_tmpz00_2817 = BgL_patz00_1280;
													}
												else
													{
														obj_t BgL_auxz00_2820;

														BgL_auxz00_2820 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string1907z00zz__regexpz00, BINT(6996L),
															BGl_string1919z00zz__regexpz00,
															BGl_string1909z00zz__regexpz00, BgL_patz00_1280);
														FAILURE(BgL_auxz00_2820, BFALSE, BFALSE);
													}
												return
													bgl_regmatch(BgL_tmpz00_2817,
													BSTRING_TO_STRING(BgL_strz00_2033), ((bool_t) 0),
													BgL_auxz00_2824, (int) (BgL_endz00_1288), (int) (0L));
											}
										else
											{	/* Unsafe/regex.scm 181 */
												obj_t BgL_rxz00_2035;

												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_arg1327z00_2036;

													BgL_arg1327z00_2036 =
														BGl_pregexpzd2normaliza7ez75zz__regexpz00
														(BgL_patz00_1280);
													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_tmpz00_2838;

														if (STRINGP(BgL_arg1327z00_2036))
															{	/* Unsafe/regex.scm 181 */
																BgL_tmpz00_2838 = BgL_arg1327z00_2036;
															}
														else
															{
																obj_t BgL_auxz00_2841;

																BgL_auxz00_2841 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7080L),
																	BGl_string1919z00zz__regexpz00,
																	BGl_string1918z00zz__regexpz00,
																	BgL_arg1327z00_2036);
																FAILURE(BgL_auxz00_2841, BFALSE, BFALSE);
															}
														BgL_rxz00_2035 =
															bgl_regcomp(BgL_tmpz00_2838, BNIL, ((bool_t) 0));
													}
												}
												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_valz00_2037;

													{	/* Unsafe/regex.scm 182 */
														int BgL_tmpz00_2846;

														{	/* Unsafe/regex.scm 182 */
															obj_t BgL_tmpz00_2848;

															if (INTEGERP(BgL_begz00_1287))
																{	/* Unsafe/regex.scm 182 */
																	BgL_tmpz00_2848 = BgL_begz00_1287;
																}
															else
																{
																	obj_t BgL_auxz00_2851;

																	BgL_auxz00_2851 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string1907z00zz__regexpz00,
																		BINT(7129L), BGl_string1919z00zz__regexpz00,
																		BGl_string1920z00zz__regexpz00,
																		BgL_begz00_1287);
																	FAILURE(BgL_auxz00_2851, BFALSE, BFALSE);
																}
															BgL_tmpz00_2846 = CINT(BgL_tmpz00_2848);
														}
														BgL_valz00_2037 =
															bgl_regmatch(BgL_rxz00_2035,
															BSTRING_TO_STRING(BgL_strz00_2033), ((bool_t) 0),
															BgL_tmpz00_2846, (int) (BgL_endz00_1288),
															(int) (0L));
													}
													{	/* Unsafe/regex.scm 182 */

														bgl_regfree(BgL_rxz00_2035);
														return BgL_valz00_2037;
													}
												}
											}
									}
								}
							}
						}
						break;
					case 4L:

						{	/* Unsafe/regex.scm 189 */
							obj_t BgL_begz00_1290;

							BgL_begz00_1290 = VECTOR_REF(BgL_opt1123z00_22, 2L);
							{	/* Unsafe/regex.scm 189 */
								obj_t BgL_endz00_1291;

								BgL_endz00_1291 = VECTOR_REF(BgL_opt1123z00_22, 3L);
								{	/* Unsafe/regex.scm 189 */

									{	/* Unsafe/regex.scm 189 */
										obj_t BgL_strz00_2038;

										if (STRINGP(BgL_strz00_1281))
											{	/* Unsafe/regex.scm 189 */
												BgL_strz00_2038 = BgL_strz00_1281;
											}
										else
											{
												obj_t BgL_auxz00_2864;

												BgL_auxz00_2864 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(7399L),
													BGl_string1919z00zz__regexpz00,
													BGl_string1918z00zz__regexpz00, BgL_strz00_1281);
												FAILURE(BgL_auxz00_2864, BFALSE, BFALSE);
											}
										if (BGL_REGEXPP(BgL_patz00_1280))
											{	/* Unsafe/regex.scm 180 */
												int BgL_auxz00_2887;
												int BgL_auxz00_2877;
												obj_t BgL_tmpz00_2870;

												{	/* Unsafe/regex.scm 180 */
													obj_t BgL_tmpz00_2888;

													if (INTEGERP(BgL_endz00_1291))
														{	/* Unsafe/regex.scm 180 */
															BgL_tmpz00_2888 = BgL_endz00_1291;
														}
													else
														{
															obj_t BgL_auxz00_2891;

															BgL_auxz00_2891 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string1907z00zz__regexpz00, BINT(7016L),
																BGl_string1919z00zz__regexpz00,
																BGl_string1920z00zz__regexpz00,
																BgL_endz00_1291);
															FAILURE(BgL_auxz00_2891, BFALSE, BFALSE);
														}
													BgL_auxz00_2887 = CINT(BgL_tmpz00_2888);
												}
												{	/* Unsafe/regex.scm 180 */
													obj_t BgL_tmpz00_2879;

													if (INTEGERP(BgL_begz00_1290))
														{	/* Unsafe/regex.scm 180 */
															BgL_tmpz00_2879 = BgL_begz00_1290;
														}
													else
														{
															obj_t BgL_auxz00_2882;

															BgL_auxz00_2882 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string1907z00zz__regexpz00, BINT(7012L),
																BGl_string1919z00zz__regexpz00,
																BGl_string1920z00zz__regexpz00,
																BgL_begz00_1290);
															FAILURE(BgL_auxz00_2882, BFALSE, BFALSE);
														}
													BgL_auxz00_2877 = CINT(BgL_tmpz00_2879);
												}
												if (BGl_regexpzf3zf3zz__regexpz00(BgL_patz00_1280))
													{	/* Unsafe/regex.scm 180 */
														BgL_tmpz00_2870 = BgL_patz00_1280;
													}
												else
													{
														obj_t BgL_auxz00_2873;

														BgL_auxz00_2873 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string1907z00zz__regexpz00, BINT(6996L),
															BGl_string1919z00zz__regexpz00,
															BGl_string1909z00zz__regexpz00, BgL_patz00_1280);
														FAILURE(BgL_auxz00_2873, BFALSE, BFALSE);
													}
												return
													bgl_regmatch(BgL_tmpz00_2870,
													BSTRING_TO_STRING(BgL_strz00_2038), ((bool_t) 0),
													BgL_auxz00_2877, BgL_auxz00_2887, (int) (0L));
											}
										else
											{	/* Unsafe/regex.scm 181 */
												obj_t BgL_rxz00_2040;

												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_arg1327z00_2041;

													BgL_arg1327z00_2041 =
														BGl_pregexpzd2normaliza7ez75zz__regexpz00
														(BgL_patz00_1280);
													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_tmpz00_2899;

														if (STRINGP(BgL_arg1327z00_2041))
															{	/* Unsafe/regex.scm 181 */
																BgL_tmpz00_2899 = BgL_arg1327z00_2041;
															}
														else
															{
																obj_t BgL_auxz00_2902;

																BgL_auxz00_2902 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7080L),
																	BGl_string1919z00zz__regexpz00,
																	BGl_string1918z00zz__regexpz00,
																	BgL_arg1327z00_2041);
																FAILURE(BgL_auxz00_2902, BFALSE, BFALSE);
															}
														BgL_rxz00_2040 =
															bgl_regcomp(BgL_tmpz00_2899, BNIL, ((bool_t) 0));
													}
												}
												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_valz00_2042;

													{	/* Unsafe/regex.scm 182 */
														int BgL_auxz00_2917;
														int BgL_tmpz00_2907;

														{	/* Unsafe/regex.scm 182 */
															obj_t BgL_tmpz00_2918;

															if (INTEGERP(BgL_endz00_1291))
																{	/* Unsafe/regex.scm 182 */
																	BgL_tmpz00_2918 = BgL_endz00_1291;
																}
															else
																{
																	obj_t BgL_auxz00_2921;

																	BgL_auxz00_2921 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string1907z00zz__regexpz00,
																		BINT(7133L), BGl_string1919z00zz__regexpz00,
																		BGl_string1920z00zz__regexpz00,
																		BgL_endz00_1291);
																	FAILURE(BgL_auxz00_2921, BFALSE, BFALSE);
																}
															BgL_auxz00_2917 = CINT(BgL_tmpz00_2918);
														}
														{	/* Unsafe/regex.scm 182 */
															obj_t BgL_tmpz00_2909;

															if (INTEGERP(BgL_begz00_1290))
																{	/* Unsafe/regex.scm 182 */
																	BgL_tmpz00_2909 = BgL_begz00_1290;
																}
															else
																{
																	obj_t BgL_auxz00_2912;

																	BgL_auxz00_2912 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string1907z00zz__regexpz00,
																		BINT(7129L), BGl_string1919z00zz__regexpz00,
																		BGl_string1920z00zz__regexpz00,
																		BgL_begz00_1290);
																	FAILURE(BgL_auxz00_2912, BFALSE, BFALSE);
																}
															BgL_tmpz00_2907 = CINT(BgL_tmpz00_2909);
														}
														BgL_valz00_2042 =
															bgl_regmatch(BgL_rxz00_2040,
															BSTRING_TO_STRING(BgL_strz00_2038), ((bool_t) 0),
															BgL_tmpz00_2907, BgL_auxz00_2917, (int) (0L));
													}
													{	/* Unsafe/regex.scm 182 */

														bgl_regfree(BgL_rxz00_2040);
														return BgL_valz00_2042;
													}
												}
											}
									}
								}
							}
						}
						break;
					case 5L:

						{	/* Unsafe/regex.scm 189 */
							obj_t BgL_begz00_1293;

							BgL_begz00_1293 = VECTOR_REF(BgL_opt1123z00_22, 2L);
							{	/* Unsafe/regex.scm 189 */
								obj_t BgL_endz00_1294;

								BgL_endz00_1294 = VECTOR_REF(BgL_opt1123z00_22, 3L);
								{	/* Unsafe/regex.scm 189 */
									obj_t BgL_offsetz00_1295;

									BgL_offsetz00_1295 = VECTOR_REF(BgL_opt1123z00_22, 4L);
									{	/* Unsafe/regex.scm 189 */

										{	/* Unsafe/regex.scm 189 */
											obj_t BgL_strz00_2043;

											if (STRINGP(BgL_strz00_1281))
												{	/* Unsafe/regex.scm 189 */
													BgL_strz00_2043 = BgL_strz00_1281;
												}
											else
												{
													obj_t BgL_auxz00_2934;

													BgL_auxz00_2934 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string1907z00zz__regexpz00, BINT(7399L),
														BGl_string1919z00zz__regexpz00,
														BGl_string1918z00zz__regexpz00, BgL_strz00_1281);
													FAILURE(BgL_auxz00_2934, BFALSE, BFALSE);
												}
											if (BGL_REGEXPP(BgL_patz00_1280))
												{	/* Unsafe/regex.scm 180 */
													int BgL_auxz00_2966;
													int BgL_auxz00_2957;
													int BgL_auxz00_2947;
													obj_t BgL_tmpz00_2940;

													{	/* Unsafe/regex.scm 180 */
														obj_t BgL_tmpz00_2967;

														if (INTEGERP(BgL_offsetz00_1295))
															{	/* Unsafe/regex.scm 180 */
																BgL_tmpz00_2967 = BgL_offsetz00_1295;
															}
														else
															{
																obj_t BgL_auxz00_2970;

																BgL_auxz00_2970 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7020L),
																	BGl_string1919z00zz__regexpz00,
																	BGl_string1920z00zz__regexpz00,
																	BgL_offsetz00_1295);
																FAILURE(BgL_auxz00_2970, BFALSE, BFALSE);
															}
														BgL_auxz00_2966 = CINT(BgL_tmpz00_2967);
													}
													{	/* Unsafe/regex.scm 180 */
														obj_t BgL_tmpz00_2958;

														if (INTEGERP(BgL_endz00_1294))
															{	/* Unsafe/regex.scm 180 */
																BgL_tmpz00_2958 = BgL_endz00_1294;
															}
														else
															{
																obj_t BgL_auxz00_2961;

																BgL_auxz00_2961 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7016L),
																	BGl_string1919z00zz__regexpz00,
																	BGl_string1920z00zz__regexpz00,
																	BgL_endz00_1294);
																FAILURE(BgL_auxz00_2961, BFALSE, BFALSE);
															}
														BgL_auxz00_2957 = CINT(BgL_tmpz00_2958);
													}
													{	/* Unsafe/regex.scm 180 */
														obj_t BgL_tmpz00_2949;

														if (INTEGERP(BgL_begz00_1293))
															{	/* Unsafe/regex.scm 180 */
																BgL_tmpz00_2949 = BgL_begz00_1293;
															}
														else
															{
																obj_t BgL_auxz00_2952;

																BgL_auxz00_2952 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7012L),
																	BGl_string1919z00zz__regexpz00,
																	BGl_string1920z00zz__regexpz00,
																	BgL_begz00_1293);
																FAILURE(BgL_auxz00_2952, BFALSE, BFALSE);
															}
														BgL_auxz00_2947 = CINT(BgL_tmpz00_2949);
													}
													if (BGl_regexpzf3zf3zz__regexpz00(BgL_patz00_1280))
														{	/* Unsafe/regex.scm 180 */
															BgL_tmpz00_2940 = BgL_patz00_1280;
														}
													else
														{
															obj_t BgL_auxz00_2943;

															BgL_auxz00_2943 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string1907z00zz__regexpz00, BINT(6996L),
																BGl_string1919z00zz__regexpz00,
																BGl_string1909z00zz__regexpz00,
																BgL_patz00_1280);
															FAILURE(BgL_auxz00_2943, BFALSE, BFALSE);
														}
													return
														bgl_regmatch(BgL_tmpz00_2940,
														BSTRING_TO_STRING(BgL_strz00_2043), ((bool_t) 0),
														BgL_auxz00_2947, BgL_auxz00_2957, BgL_auxz00_2966);
												}
											else
												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_rxz00_2045;

													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_arg1327z00_2046;

														BgL_arg1327z00_2046 =
															BGl_pregexpzd2normaliza7ez75zz__regexpz00
															(BgL_patz00_1280);
														{	/* Unsafe/regex.scm 181 */
															obj_t BgL_tmpz00_2977;

															if (STRINGP(BgL_arg1327z00_2046))
																{	/* Unsafe/regex.scm 181 */
																	BgL_tmpz00_2977 = BgL_arg1327z00_2046;
																}
															else
																{
																	obj_t BgL_auxz00_2980;

																	BgL_auxz00_2980 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string1907z00zz__regexpz00,
																		BINT(7080L), BGl_string1919z00zz__regexpz00,
																		BGl_string1918z00zz__regexpz00,
																		BgL_arg1327z00_2046);
																	FAILURE(BgL_auxz00_2980, BFALSE, BFALSE);
																}
															BgL_rxz00_2045 =
																bgl_regcomp(BgL_tmpz00_2977, BNIL,
																((bool_t) 0));
														}
													}
													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_valz00_2047;

														{	/* Unsafe/regex.scm 182 */
															int BgL_auxz00_3004;
															int BgL_auxz00_2995;
															int BgL_tmpz00_2985;

															{	/* Unsafe/regex.scm 182 */
																obj_t BgL_tmpz00_3005;

																if (INTEGERP(BgL_offsetz00_1295))
																	{	/* Unsafe/regex.scm 182 */
																		BgL_tmpz00_3005 = BgL_offsetz00_1295;
																	}
																else
																	{
																		obj_t BgL_auxz00_3008;

																		BgL_auxz00_3008 =
																			BGl_typezd2errorzd2zz__errorz00
																			(BGl_string1907z00zz__regexpz00,
																			BINT(7137L),
																			BGl_string1919z00zz__regexpz00,
																			BGl_string1920z00zz__regexpz00,
																			BgL_offsetz00_1295);
																		FAILURE(BgL_auxz00_3008, BFALSE, BFALSE);
																	}
																BgL_auxz00_3004 = CINT(BgL_tmpz00_3005);
															}
															{	/* Unsafe/regex.scm 182 */
																obj_t BgL_tmpz00_2996;

																if (INTEGERP(BgL_endz00_1294))
																	{	/* Unsafe/regex.scm 182 */
																		BgL_tmpz00_2996 = BgL_endz00_1294;
																	}
																else
																	{
																		obj_t BgL_auxz00_2999;

																		BgL_auxz00_2999 =
																			BGl_typezd2errorzd2zz__errorz00
																			(BGl_string1907z00zz__regexpz00,
																			BINT(7133L),
																			BGl_string1919z00zz__regexpz00,
																			BGl_string1920z00zz__regexpz00,
																			BgL_endz00_1294);
																		FAILURE(BgL_auxz00_2999, BFALSE, BFALSE);
																	}
																BgL_auxz00_2995 = CINT(BgL_tmpz00_2996);
															}
															{	/* Unsafe/regex.scm 182 */
																obj_t BgL_tmpz00_2987;

																if (INTEGERP(BgL_begz00_1293))
																	{	/* Unsafe/regex.scm 182 */
																		BgL_tmpz00_2987 = BgL_begz00_1293;
																	}
																else
																	{
																		obj_t BgL_auxz00_2990;

																		BgL_auxz00_2990 =
																			BGl_typezd2errorzd2zz__errorz00
																			(BGl_string1907z00zz__regexpz00,
																			BINT(7129L),
																			BGl_string1919z00zz__regexpz00,
																			BGl_string1920z00zz__regexpz00,
																			BgL_begz00_1293);
																		FAILURE(BgL_auxz00_2990, BFALSE, BFALSE);
																	}
																BgL_tmpz00_2985 = CINT(BgL_tmpz00_2987);
															}
															BgL_valz00_2047 =
																bgl_regmatch(BgL_rxz00_2045,
																BSTRING_TO_STRING(BgL_strz00_2043),
																((bool_t) 0), BgL_tmpz00_2985, BgL_auxz00_2995,
																BgL_auxz00_3004);
														}
														{	/* Unsafe/regex.scm 182 */

															bgl_regfree(BgL_rxz00_2045);
															return BgL_valz00_2047;
														}
													}
												}
										}
									}
								}
							}
						}
						break;
					default:
						return BUNSPEC;
					}
			}
		}

	}



/* pregexp-match-positions */
	BGL_EXPORTED_DEF obj_t BGl_pregexpzd2matchzd2positionsz00zz__regexpz00(obj_t
		BgL_patz00_17, obj_t BgL_strz00_18, obj_t BgL_begz00_19,
		obj_t BgL_endz00_20, obj_t BgL_offsetz00_21)
	{
		{	/* Unsafe/regex.scm 189 */
			if (BGL_REGEXPP(BgL_patz00_17))
				{	/* Unsafe/regex.scm 179 */
					return
						bgl_regmatch(BgL_patz00_17,
						BSTRING_TO_STRING(BgL_strz00_18), ((bool_t) 0),
						CINT(BgL_begz00_19), CINT(BgL_endz00_20), CINT(BgL_offsetz00_21));
				}
			else
				{	/* Unsafe/regex.scm 181 */
					obj_t BgL_rxz00_2049;

					BgL_rxz00_2049 =
						bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00
						(BgL_patz00_17), BNIL, ((bool_t) 0));
					{	/* Unsafe/regex.scm 181 */
						obj_t BgL_valz00_2051;

						BgL_valz00_2051 =
							bgl_regmatch(BgL_rxz00_2049,
							BSTRING_TO_STRING(BgL_strz00_18), ((bool_t) 0),
							CINT(BgL_begz00_19), CINT(BgL_endz00_20), CINT(BgL_offsetz00_21));
						{	/* Unsafe/regex.scm 182 */

							bgl_regfree(BgL_rxz00_2049);
							return BgL_valz00_2051;
						}
					}
				}
		}

	}



/* _pregexp-match */
	obj_t BGl__pregexpzd2matchzd2zz__regexpz00(obj_t BgL_env1128z00_29,
		obj_t BgL_opt1127z00_28)
	{
		{	/* Unsafe/regex.scm 195 */
			{	/* Unsafe/regex.scm 195 */
				obj_t BgL_patz00_1296;
				obj_t BgL_strz00_1297;

				BgL_patz00_1296 = VECTOR_REF(BgL_opt1127z00_28, 0L);
				BgL_strz00_1297 = VECTOR_REF(BgL_opt1127z00_28, 1L);
				switch (VECTOR_LENGTH(BgL_opt1127z00_28))
					{
					case 2L:

						{	/* Unsafe/regex.scm 195 */
							long BgL_endz00_1301;

							{	/* Unsafe/regex.scm 195 */
								obj_t BgL_stringz00_2052;

								if (STRINGP(BgL_strz00_1297))
									{	/* Unsafe/regex.scm 195 */
										BgL_stringz00_2052 = BgL_strz00_1297;
									}
								else
									{
										obj_t BgL_auxz00_3036;

										BgL_auxz00_3036 =
											BGl_typezd2errorzd2zz__errorz00
											(BGl_string1907z00zz__regexpz00, BINT(7813L),
											BGl_string1921z00zz__regexpz00,
											BGl_string1918z00zz__regexpz00, BgL_strz00_1297);
										FAILURE(BgL_auxz00_3036, BFALSE, BFALSE);
									}
								BgL_endz00_1301 = STRING_LENGTH(BgL_stringz00_2052);
							}
							{	/* Unsafe/regex.scm 195 */

								{	/* Unsafe/regex.scm 195 */
									obj_t BgL_strz00_2053;

									if (STRINGP(BgL_strz00_1297))
										{	/* Unsafe/regex.scm 195 */
											BgL_strz00_2053 = BgL_strz00_1297;
										}
									else
										{
											obj_t BgL_auxz00_3043;

											BgL_auxz00_3043 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string1907z00zz__regexpz00, BINT(7758L),
												BGl_string1921z00zz__regexpz00,
												BGl_string1918z00zz__regexpz00, BgL_strz00_1297);
											FAILURE(BgL_auxz00_3043, BFALSE, BFALSE);
										}
									{	/* Unsafe/regex.scm 196 */

										if (BGL_REGEXPP(BgL_patz00_1296))
											{	/* Unsafe/regex.scm 180 */
												obj_t BgL_tmpz00_3049;

												if (BGl_regexpzf3zf3zz__regexpz00(BgL_patz00_1296))
													{	/* Unsafe/regex.scm 196 */
														BgL_tmpz00_3049 = BgL_patz00_1296;
													}
												else
													{
														obj_t BgL_auxz00_3052;

														BgL_auxz00_3052 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string1907z00zz__regexpz00, BINT(7845L),
															BGl_string1921z00zz__regexpz00,
															BGl_string1909z00zz__regexpz00, BgL_patz00_1296);
														FAILURE(BgL_auxz00_3052, BFALSE, BFALSE);
													}
												return
													bgl_regmatch(BgL_tmpz00_3049,
													BSTRING_TO_STRING(BgL_strz00_2053), ((bool_t) 1),
													(int) (0L), (int) (BgL_endz00_1301), (int) (0L));
											}
										else
											{	/* Unsafe/regex.scm 181 */
												obj_t BgL_rxz00_2061;

												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_arg1327z00_2062;

													BgL_arg1327z00_2062 =
														BGl_pregexpzd2normaliza7ez75zz__regexpz00
														(BgL_patz00_1296);
													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_tmpz00_3062;

														if (STRINGP(BgL_arg1327z00_2062))
															{	/* Unsafe/regex.scm 181 */
																BgL_tmpz00_3062 = BgL_arg1327z00_2062;
															}
														else
															{
																obj_t BgL_auxz00_3065;

																BgL_auxz00_3065 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7080L),
																	BGl_string1921z00zz__regexpz00,
																	BGl_string1918z00zz__regexpz00,
																	BgL_arg1327z00_2062);
																FAILURE(BgL_auxz00_3065, BFALSE, BFALSE);
															}
														BgL_rxz00_2061 =
															bgl_regcomp(BgL_tmpz00_3062, BNIL, ((bool_t) 0));
													}
												}
												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_valz00_2063;

													BgL_valz00_2063 =
														bgl_regmatch(BgL_rxz00_2061,
														BSTRING_TO_STRING(BgL_strz00_2053), ((bool_t) 1),
														(int) (0L), (int) (BgL_endz00_1301), (int) (0L));
													{	/* Unsafe/regex.scm 182 */

														bgl_regfree(BgL_rxz00_2061);
														return BgL_valz00_2063;
													}
												}
											}
									}
								}
							}
						}
						break;
					case 3L:

						{	/* Unsafe/regex.scm 195 */
							obj_t BgL_begz00_1302;

							BgL_begz00_1302 = VECTOR_REF(BgL_opt1127z00_28, 2L);
							{	/* Unsafe/regex.scm 195 */
								long BgL_endz00_1303;

								{	/* Unsafe/regex.scm 195 */
									obj_t BgL_stringz00_2064;

									if (STRINGP(BgL_strz00_1297))
										{	/* Unsafe/regex.scm 195 */
											BgL_stringz00_2064 = BgL_strz00_1297;
										}
									else
										{
											obj_t BgL_auxz00_3079;

											BgL_auxz00_3079 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string1907z00zz__regexpz00, BINT(7813L),
												BGl_string1921z00zz__regexpz00,
												BGl_string1918z00zz__regexpz00, BgL_strz00_1297);
											FAILURE(BgL_auxz00_3079, BFALSE, BFALSE);
										}
									BgL_endz00_1303 = STRING_LENGTH(BgL_stringz00_2064);
								}
								{	/* Unsafe/regex.scm 195 */

									{	/* Unsafe/regex.scm 195 */
										obj_t BgL_strz00_2065;

										if (STRINGP(BgL_strz00_1297))
											{	/* Unsafe/regex.scm 195 */
												BgL_strz00_2065 = BgL_strz00_1297;
											}
										else
											{
												obj_t BgL_auxz00_3086;

												BgL_auxz00_3086 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(7758L),
													BGl_string1921z00zz__regexpz00,
													BGl_string1918z00zz__regexpz00, BgL_strz00_1297);
												FAILURE(BgL_auxz00_3086, BFALSE, BFALSE);
											}
										{	/* Unsafe/regex.scm 196 */

											if (BGL_REGEXPP(BgL_patz00_1296))
												{	/* Unsafe/regex.scm 180 */
													int BgL_auxz00_3099;
													obj_t BgL_tmpz00_3092;

													{	/* Unsafe/regex.scm 196 */
														obj_t BgL_tmpz00_3101;

														if (INTEGERP(BgL_begz00_1302))
															{	/* Unsafe/regex.scm 196 */
																BgL_tmpz00_3101 = BgL_begz00_1302;
															}
														else
															{
																obj_t BgL_auxz00_3104;

																BgL_auxz00_3104 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7856L),
																	BGl_string1921z00zz__regexpz00,
																	BGl_string1920z00zz__regexpz00,
																	BgL_begz00_1302);
																FAILURE(BgL_auxz00_3104, BFALSE, BFALSE);
															}
														BgL_auxz00_3099 = CINT(BgL_tmpz00_3101);
													}
													if (BGl_regexpzf3zf3zz__regexpz00(BgL_patz00_1296))
														{	/* Unsafe/regex.scm 196 */
															BgL_tmpz00_3092 = BgL_patz00_1296;
														}
													else
														{
															obj_t BgL_auxz00_3095;

															BgL_auxz00_3095 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string1907z00zz__regexpz00, BINT(7845L),
																BGl_string1921z00zz__regexpz00,
																BGl_string1909z00zz__regexpz00,
																BgL_patz00_1296);
															FAILURE(BgL_auxz00_3095, BFALSE, BFALSE);
														}
													return
														bgl_regmatch(BgL_tmpz00_3092,
														BSTRING_TO_STRING(BgL_strz00_2065), ((bool_t) 1),
														BgL_auxz00_3099, (int) (BgL_endz00_1303),
														(int) (0L));
												}
											else
												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_rxz00_2073;

													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_arg1327z00_2074;

														BgL_arg1327z00_2074 =
															BGl_pregexpzd2normaliza7ez75zz__regexpz00
															(BgL_patz00_1296);
														{	/* Unsafe/regex.scm 181 */
															obj_t BgL_tmpz00_3113;

															if (STRINGP(BgL_arg1327z00_2074))
																{	/* Unsafe/regex.scm 181 */
																	BgL_tmpz00_3113 = BgL_arg1327z00_2074;
																}
															else
																{
																	obj_t BgL_auxz00_3116;

																	BgL_auxz00_3116 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string1907z00zz__regexpz00,
																		BINT(7080L), BGl_string1921z00zz__regexpz00,
																		BGl_string1918z00zz__regexpz00,
																		BgL_arg1327z00_2074);
																	FAILURE(BgL_auxz00_3116, BFALSE, BFALSE);
																}
															BgL_rxz00_2073 =
																bgl_regcomp(BgL_tmpz00_3113, BNIL,
																((bool_t) 0));
														}
													}
													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_valz00_2075;

														{	/* Unsafe/regex.scm 182 */
															int BgL_tmpz00_3121;

															{	/* Unsafe/regex.scm 196 */
																obj_t BgL_tmpz00_3123;

																if (INTEGERP(BgL_begz00_1302))
																	{	/* Unsafe/regex.scm 196 */
																		BgL_tmpz00_3123 = BgL_begz00_1302;
																	}
																else
																	{
																		obj_t BgL_auxz00_3126;

																		BgL_auxz00_3126 =
																			BGl_typezd2errorzd2zz__errorz00
																			(BGl_string1907z00zz__regexpz00,
																			BINT(7856L),
																			BGl_string1921z00zz__regexpz00,
																			BGl_string1920z00zz__regexpz00,
																			BgL_begz00_1302);
																		FAILURE(BgL_auxz00_3126, BFALSE, BFALSE);
																	}
																BgL_tmpz00_3121 = CINT(BgL_tmpz00_3123);
															}
															BgL_valz00_2075 =
																bgl_regmatch(BgL_rxz00_2073,
																BSTRING_TO_STRING(BgL_strz00_2065),
																((bool_t) 1), BgL_tmpz00_3121,
																(int) (BgL_endz00_1303), (int) (0L));
														}
														{	/* Unsafe/regex.scm 182 */

															bgl_regfree(BgL_rxz00_2073);
															return BgL_valz00_2075;
														}
													}
												}
										}
									}
								}
							}
						}
						break;
					case 4L:

						{	/* Unsafe/regex.scm 195 */
							obj_t BgL_begz00_1304;

							BgL_begz00_1304 = VECTOR_REF(BgL_opt1127z00_28, 2L);
							{	/* Unsafe/regex.scm 195 */
								obj_t BgL_endz00_1305;

								BgL_endz00_1305 = VECTOR_REF(BgL_opt1127z00_28, 3L);
								{	/* Unsafe/regex.scm 195 */

									{	/* Unsafe/regex.scm 195 */
										obj_t BgL_strz00_2076;

										if (STRINGP(BgL_strz00_1297))
											{	/* Unsafe/regex.scm 195 */
												BgL_strz00_2076 = BgL_strz00_1297;
											}
										else
											{
												obj_t BgL_auxz00_3139;

												BgL_auxz00_3139 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(7758L),
													BGl_string1921z00zz__regexpz00,
													BGl_string1918z00zz__regexpz00, BgL_strz00_1297);
												FAILURE(BgL_auxz00_3139, BFALSE, BFALSE);
											}
										{	/* Unsafe/regex.scm 196 */

											if (BGL_REGEXPP(BgL_patz00_1296))
												{	/* Unsafe/regex.scm 180 */
													int BgL_auxz00_3162;
													int BgL_auxz00_3152;
													obj_t BgL_tmpz00_3145;

													{	/* Unsafe/regex.scm 196 */
														obj_t BgL_tmpz00_3163;

														if (INTEGERP(BgL_endz00_1305))
															{	/* Unsafe/regex.scm 196 */
																BgL_tmpz00_3163 = BgL_endz00_1305;
															}
														else
															{
																obj_t BgL_auxz00_3166;

																BgL_auxz00_3166 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7860L),
																	BGl_string1921z00zz__regexpz00,
																	BGl_string1920z00zz__regexpz00,
																	BgL_endz00_1305);
																FAILURE(BgL_auxz00_3166, BFALSE, BFALSE);
															}
														BgL_auxz00_3162 = CINT(BgL_tmpz00_3163);
													}
													{	/* Unsafe/regex.scm 196 */
														obj_t BgL_tmpz00_3154;

														if (INTEGERP(BgL_begz00_1304))
															{	/* Unsafe/regex.scm 196 */
																BgL_tmpz00_3154 = BgL_begz00_1304;
															}
														else
															{
																obj_t BgL_auxz00_3157;

																BgL_auxz00_3157 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string1907z00zz__regexpz00, BINT(7856L),
																	BGl_string1921z00zz__regexpz00,
																	BGl_string1920z00zz__regexpz00,
																	BgL_begz00_1304);
																FAILURE(BgL_auxz00_3157, BFALSE, BFALSE);
															}
														BgL_auxz00_3152 = CINT(BgL_tmpz00_3154);
													}
													if (BGl_regexpzf3zf3zz__regexpz00(BgL_patz00_1296))
														{	/* Unsafe/regex.scm 196 */
															BgL_tmpz00_3145 = BgL_patz00_1296;
														}
													else
														{
															obj_t BgL_auxz00_3148;

															BgL_auxz00_3148 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string1907z00zz__regexpz00, BINT(7845L),
																BGl_string1921z00zz__regexpz00,
																BGl_string1909z00zz__regexpz00,
																BgL_patz00_1296);
															FAILURE(BgL_auxz00_3148, BFALSE, BFALSE);
														}
													return
														bgl_regmatch(BgL_tmpz00_3145,
														BSTRING_TO_STRING(BgL_strz00_2076), ((bool_t) 1),
														BgL_auxz00_3152, BgL_auxz00_3162, (int) (0L));
												}
											else
												{	/* Unsafe/regex.scm 181 */
													obj_t BgL_rxz00_2084;

													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_arg1327z00_2085;

														BgL_arg1327z00_2085 =
															BGl_pregexpzd2normaliza7ez75zz__regexpz00
															(BgL_patz00_1296);
														{	/* Unsafe/regex.scm 181 */
															obj_t BgL_tmpz00_3174;

															if (STRINGP(BgL_arg1327z00_2085))
																{	/* Unsafe/regex.scm 181 */
																	BgL_tmpz00_3174 = BgL_arg1327z00_2085;
																}
															else
																{
																	obj_t BgL_auxz00_3177;

																	BgL_auxz00_3177 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string1907z00zz__regexpz00,
																		BINT(7080L), BGl_string1921z00zz__regexpz00,
																		BGl_string1918z00zz__regexpz00,
																		BgL_arg1327z00_2085);
																	FAILURE(BgL_auxz00_3177, BFALSE, BFALSE);
																}
															BgL_rxz00_2084 =
																bgl_regcomp(BgL_tmpz00_3174, BNIL,
																((bool_t) 0));
														}
													}
													{	/* Unsafe/regex.scm 181 */
														obj_t BgL_valz00_2086;

														{	/* Unsafe/regex.scm 182 */
															int BgL_auxz00_3192;
															int BgL_tmpz00_3182;

															{	/* Unsafe/regex.scm 196 */
																obj_t BgL_tmpz00_3193;

																if (INTEGERP(BgL_endz00_1305))
																	{	/* Unsafe/regex.scm 196 */
																		BgL_tmpz00_3193 = BgL_endz00_1305;
																	}
																else
																	{
																		obj_t BgL_auxz00_3196;

																		BgL_auxz00_3196 =
																			BGl_typezd2errorzd2zz__errorz00
																			(BGl_string1907z00zz__regexpz00,
																			BINT(7860L),
																			BGl_string1921z00zz__regexpz00,
																			BGl_string1920z00zz__regexpz00,
																			BgL_endz00_1305);
																		FAILURE(BgL_auxz00_3196, BFALSE, BFALSE);
																	}
																BgL_auxz00_3192 = CINT(BgL_tmpz00_3193);
															}
															{	/* Unsafe/regex.scm 196 */
																obj_t BgL_tmpz00_3184;

																if (INTEGERP(BgL_begz00_1304))
																	{	/* Unsafe/regex.scm 196 */
																		BgL_tmpz00_3184 = BgL_begz00_1304;
																	}
																else
																	{
																		obj_t BgL_auxz00_3187;

																		BgL_auxz00_3187 =
																			BGl_typezd2errorzd2zz__errorz00
																			(BGl_string1907z00zz__regexpz00,
																			BINT(7856L),
																			BGl_string1921z00zz__regexpz00,
																			BGl_string1920z00zz__regexpz00,
																			BgL_begz00_1304);
																		FAILURE(BgL_auxz00_3187, BFALSE, BFALSE);
																	}
																BgL_tmpz00_3182 = CINT(BgL_tmpz00_3184);
															}
															BgL_valz00_2086 =
																bgl_regmatch(BgL_rxz00_2084,
																BSTRING_TO_STRING(BgL_strz00_2076),
																((bool_t) 1), BgL_tmpz00_3182, BgL_auxz00_3192,
																(int) (0L));
														}
														{	/* Unsafe/regex.scm 182 */

															bgl_regfree(BgL_rxz00_2084);
															return BgL_valz00_2086;
														}
													}
												}
										}
									}
								}
							}
						}
						break;
					default:
						return BUNSPEC;
					}
			}
		}

	}



/* pregexp-match */
	BGL_EXPORTED_DEF obj_t BGl_pregexpzd2matchzd2zz__regexpz00(obj_t
		BgL_patz00_24, obj_t BgL_strz00_25, obj_t BgL_begz00_26,
		obj_t BgL_endz00_27)
	{
		{	/* Unsafe/regex.scm 195 */
			{	/* Unsafe/regex.scm 196 */

				if (BGL_REGEXPP(BgL_patz00_24))
					{	/* Unsafe/regex.scm 179 */
						return
							bgl_regmatch(BgL_patz00_24,
							BSTRING_TO_STRING(BgL_strz00_25), ((bool_t) 1),
							CINT(BgL_begz00_26), CINT(BgL_endz00_27), (int) (0L));
					}
				else
					{	/* Unsafe/regex.scm 181 */
						obj_t BgL_rxz00_2094;

						BgL_rxz00_2094 =
							bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00
							(BgL_patz00_24), BNIL, ((bool_t) 0));
						{	/* Unsafe/regex.scm 181 */
							obj_t BgL_valz00_2096;

							BgL_valz00_2096 =
								bgl_regmatch(BgL_rxz00_2094,
								BSTRING_TO_STRING(BgL_strz00_25), ((bool_t) 1),
								CINT(BgL_begz00_26), CINT(BgL_endz00_27), (int) (0L));
							{	/* Unsafe/regex.scm 182 */

								bgl_regfree(BgL_rxz00_2094);
								return BgL_valz00_2096;
							}
						}
					}
			}
		}

	}



/* _pregexp-match-n-positions! */
	obj_t BGl__pregexpzd2matchzd2nzd2positionsz12zc0zz__regexpz00(obj_t
		BgL_env1132z00_37, obj_t BgL_opt1131z00_36)
	{
		{	/* Unsafe/regex.scm 201 */
			{	/* Unsafe/regex.scm 201 */
				obj_t BgL_g1133z00_1312;
				obj_t BgL_g1134z00_1313;
				obj_t BgL_g1135z00_1314;
				obj_t BgL_g1136z00_1315;
				obj_t BgL_g1137z00_1316;

				BgL_g1133z00_1312 = VECTOR_REF(BgL_opt1131z00_36, 0L);
				BgL_g1134z00_1313 = VECTOR_REF(BgL_opt1131z00_36, 1L);
				BgL_g1135z00_1314 = VECTOR_REF(BgL_opt1131z00_36, 2L);
				BgL_g1136z00_1315 = VECTOR_REF(BgL_opt1131z00_36, 3L);
				BgL_g1137z00_1316 = VECTOR_REF(BgL_opt1131z00_36, 4L);
				switch (VECTOR_LENGTH(BgL_opt1131z00_36))
					{
					case 5L:

						{	/* Unsafe/regex.scm 201 */

							{	/* Unsafe/regex.scm 201 */
								long BgL_tmpz00_3226;

								{	/* Unsafe/regex.scm 201 */
									long BgL_auxz00_3257;
									long BgL_auxz00_3248;
									obj_t BgL_auxz00_3241;
									obj_t BgL_auxz00_3234;
									obj_t BgL_auxz00_3227;

									{	/* Unsafe/regex.scm 201 */
										obj_t BgL_tmpz00_3258;

										if (INTEGERP(BgL_g1137z00_1316))
											{	/* Unsafe/regex.scm 201 */
												BgL_tmpz00_3258 = BgL_g1137z00_1316;
											}
										else
											{
												obj_t BgL_auxz00_3261;

												BgL_auxz00_3261 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(8089L),
													BGl_string1922z00zz__regexpz00,
													BGl_string1920z00zz__regexpz00, BgL_g1137z00_1316);
												FAILURE(BgL_auxz00_3261, BFALSE, BFALSE);
											}
										BgL_auxz00_3257 = (long) CINT(BgL_tmpz00_3258);
									}
									{	/* Unsafe/regex.scm 201 */
										obj_t BgL_tmpz00_3249;

										if (INTEGERP(BgL_g1136z00_1315))
											{	/* Unsafe/regex.scm 201 */
												BgL_tmpz00_3249 = BgL_g1136z00_1315;
											}
										else
											{
												obj_t BgL_auxz00_3252;

												BgL_auxz00_3252 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(8089L),
													BGl_string1922z00zz__regexpz00,
													BGl_string1920z00zz__regexpz00, BgL_g1136z00_1315);
												FAILURE(BgL_auxz00_3252, BFALSE, BFALSE);
											}
										BgL_auxz00_3248 = (long) CINT(BgL_tmpz00_3249);
									}
									if (VECTORP(BgL_g1135z00_1314))
										{	/* Unsafe/regex.scm 201 */
											BgL_auxz00_3241 = BgL_g1135z00_1314;
										}
									else
										{
											obj_t BgL_auxz00_3244;

											BgL_auxz00_3244 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string1907z00zz__regexpz00, BINT(8089L),
												BGl_string1922z00zz__regexpz00,
												BGl_string1923z00zz__regexpz00, BgL_g1135z00_1314);
											FAILURE(BgL_auxz00_3244, BFALSE, BFALSE);
										}
									if (STRINGP(BgL_g1134z00_1313))
										{	/* Unsafe/regex.scm 201 */
											BgL_auxz00_3234 = BgL_g1134z00_1313;
										}
									else
										{
											obj_t BgL_auxz00_3237;

											BgL_auxz00_3237 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string1907z00zz__regexpz00, BINT(8089L),
												BGl_string1922z00zz__regexpz00,
												BGl_string1918z00zz__regexpz00, BgL_g1134z00_1313);
											FAILURE(BgL_auxz00_3237, BFALSE, BFALSE);
										}
									if (BGl_regexpzf3zf3zz__regexpz00(BgL_g1133z00_1312))
										{	/* Unsafe/regex.scm 201 */
											BgL_auxz00_3227 = BgL_g1133z00_1312;
										}
									else
										{
											obj_t BgL_auxz00_3230;

											BgL_auxz00_3230 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string1907z00zz__regexpz00, BINT(8089L),
												BGl_string1922z00zz__regexpz00,
												BGl_string1909z00zz__regexpz00, BgL_g1133z00_1312);
											FAILURE(BgL_auxz00_3230, BFALSE, BFALSE);
										}
									BgL_tmpz00_3226 =
										BGl_pregexpzd2matchzd2nzd2positionsz12zc0zz__regexpz00
										(BgL_auxz00_3227, BgL_auxz00_3234, BgL_auxz00_3241,
										BgL_auxz00_3248, BgL_auxz00_3257, BINT(0L));
								}
								return BINT(BgL_tmpz00_3226);
							}
						}
						break;
					case 6L:

						{	/* Unsafe/regex.scm 201 */
							obj_t BgL_offsetz00_1320;

							BgL_offsetz00_1320 = VECTOR_REF(BgL_opt1131z00_36, 5L);
							{	/* Unsafe/regex.scm 201 */

								{	/* Unsafe/regex.scm 201 */
									long BgL_tmpz00_3270;

									{	/* Unsafe/regex.scm 201 */
										long BgL_auxz00_3301;
										long BgL_auxz00_3292;
										obj_t BgL_auxz00_3285;
										obj_t BgL_auxz00_3278;
										obj_t BgL_auxz00_3271;

										{	/* Unsafe/regex.scm 201 */
											obj_t BgL_tmpz00_3302;

											if (INTEGERP(BgL_g1137z00_1316))
												{	/* Unsafe/regex.scm 201 */
													BgL_tmpz00_3302 = BgL_g1137z00_1316;
												}
											else
												{
													obj_t BgL_auxz00_3305;

													BgL_auxz00_3305 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string1907z00zz__regexpz00, BINT(8089L),
														BGl_string1922z00zz__regexpz00,
														BGl_string1920z00zz__regexpz00, BgL_g1137z00_1316);
													FAILURE(BgL_auxz00_3305, BFALSE, BFALSE);
												}
											BgL_auxz00_3301 = (long) CINT(BgL_tmpz00_3302);
										}
										{	/* Unsafe/regex.scm 201 */
											obj_t BgL_tmpz00_3293;

											if (INTEGERP(BgL_g1136z00_1315))
												{	/* Unsafe/regex.scm 201 */
													BgL_tmpz00_3293 = BgL_g1136z00_1315;
												}
											else
												{
													obj_t BgL_auxz00_3296;

													BgL_auxz00_3296 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string1907z00zz__regexpz00, BINT(8089L),
														BGl_string1922z00zz__regexpz00,
														BGl_string1920z00zz__regexpz00, BgL_g1136z00_1315);
													FAILURE(BgL_auxz00_3296, BFALSE, BFALSE);
												}
											BgL_auxz00_3292 = (long) CINT(BgL_tmpz00_3293);
										}
										if (VECTORP(BgL_g1135z00_1314))
											{	/* Unsafe/regex.scm 201 */
												BgL_auxz00_3285 = BgL_g1135z00_1314;
											}
										else
											{
												obj_t BgL_auxz00_3288;

												BgL_auxz00_3288 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(8089L),
													BGl_string1922z00zz__regexpz00,
													BGl_string1923z00zz__regexpz00, BgL_g1135z00_1314);
												FAILURE(BgL_auxz00_3288, BFALSE, BFALSE);
											}
										if (STRINGP(BgL_g1134z00_1313))
											{	/* Unsafe/regex.scm 201 */
												BgL_auxz00_3278 = BgL_g1134z00_1313;
											}
										else
											{
												obj_t BgL_auxz00_3281;

												BgL_auxz00_3281 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(8089L),
													BGl_string1922z00zz__regexpz00,
													BGl_string1918z00zz__regexpz00, BgL_g1134z00_1313);
												FAILURE(BgL_auxz00_3281, BFALSE, BFALSE);
											}
										if (BGl_regexpzf3zf3zz__regexpz00(BgL_g1133z00_1312))
											{	/* Unsafe/regex.scm 201 */
												BgL_auxz00_3271 = BgL_g1133z00_1312;
											}
										else
											{
												obj_t BgL_auxz00_3274;

												BgL_auxz00_3274 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string1907z00zz__regexpz00, BINT(8089L),
													BGl_string1922z00zz__regexpz00,
													BGl_string1909z00zz__regexpz00, BgL_g1133z00_1312);
												FAILURE(BgL_auxz00_3274, BFALSE, BFALSE);
											}
										BgL_tmpz00_3270 =
											BGl_pregexpzd2matchzd2nzd2positionsz12zc0zz__regexpz00
											(BgL_auxz00_3271, BgL_auxz00_3278, BgL_auxz00_3285,
											BgL_auxz00_3292, BgL_auxz00_3301, BgL_offsetz00_1320);
									}
									return BINT(BgL_tmpz00_3270);
								}
							}
						}
						break;
					default:
						return BUNSPEC;
					}
			}
		}

	}



/* pregexp-match-n-positions! */
	BGL_EXPORTED_DEF long
		BGl_pregexpzd2matchzd2nzd2positionsz12zc0zz__regexpz00(obj_t BgL_patz00_30,
		obj_t BgL_strz00_31, obj_t BgL_vresz00_32, long BgL_begz00_33,
		long BgL_endz00_34, obj_t BgL_offsetz00_35)
	{
		{	/* Unsafe/regex.scm 201 */
			{	/* Unsafe/regex.scm 202 */
				obj_t BgL_posz00_1321;
				long BgL_lenz00_1322;

				if (BGL_REGEXPP(BgL_patz00_30))
					{	/* Unsafe/regex.scm 179 */
						BgL_posz00_1321 =
							bgl_regmatch(BgL_patz00_30,
							BSTRING_TO_STRING(BgL_strz00_31), ((bool_t) 0),
							(int) (BgL_begz00_33),
							(int) (BgL_endz00_34), CINT(BgL_offsetz00_35));
					}
				else
					{	/* Unsafe/regex.scm 181 */
						obj_t BgL_rxz00_2099;

						BgL_rxz00_2099 =
							bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00
							(BgL_patz00_30), BNIL, ((bool_t) 0));
						{	/* Unsafe/regex.scm 181 */
							obj_t BgL_valz00_2101;

							BgL_valz00_2101 =
								bgl_regmatch(BgL_rxz00_2099,
								BSTRING_TO_STRING(BgL_strz00_31), ((bool_t) 0),
								(int) (BgL_begz00_33),
								(int) (BgL_endz00_34), CINT(BgL_offsetz00_35));
							{	/* Unsafe/regex.scm 182 */

								bgl_regfree(BgL_rxz00_2099);
								BgL_posz00_1321 = BgL_valz00_2101;
					}}}
				BgL_lenz00_1322 = (VECTOR_LENGTH(BgL_vresz00_32) & ~(1L));
				{
					long BgL_iz00_1324;
					obj_t BgL_posz00_1325;

					BgL_iz00_1324 = 0L;
					BgL_posz00_1325 = BgL_posz00_1321;
				BgL_zc3z04anonymousza31328ze3z87_1326:
					{	/* Unsafe/regex.scm 207 */
						bool_t BgL_test2038z00_3332;

						if ((BgL_iz00_1324 == BgL_lenz00_1322))
							{	/* Unsafe/regex.scm 207 */
								BgL_test2038z00_3332 = ((bool_t) 1);
							}
						else
							{	/* Unsafe/regex.scm 207 */
								BgL_test2038z00_3332 = NULLP(BgL_posz00_1325);
							}
						if (BgL_test2038z00_3332)
							{	/* Unsafe/regex.scm 207 */
								return BgL_iz00_1324;
							}
						else
							{	/* Unsafe/regex.scm 209 */
								bool_t BgL_test2040z00_3336;

								{	/* Unsafe/regex.scm 209 */
									obj_t BgL_tmpz00_3337;

									BgL_tmpz00_3337 = CAR(((obj_t) BgL_posz00_1325));
									BgL_test2040z00_3336 = PAIRP(BgL_tmpz00_3337);
								}
								if (BgL_test2040z00_3336)
									{	/* Unsafe/regex.scm 209 */
										{	/* Unsafe/regex.scm 210 */
											obj_t BgL_arg1333z00_1331;

											{	/* Unsafe/regex.scm 210 */
												obj_t BgL_pairz00_2111;

												BgL_pairz00_2111 = CAR(((obj_t) BgL_posz00_1325));
												BgL_arg1333z00_1331 = CAR(BgL_pairz00_2111);
											}
											VECTOR_SET(BgL_vresz00_32, BgL_iz00_1324,
												BgL_arg1333z00_1331);
										}
										{	/* Unsafe/regex.scm 211 */
											long BgL_arg1334z00_1332;
											obj_t BgL_arg1335z00_1333;

											BgL_arg1334z00_1332 = (BgL_iz00_1324 + 2L);
											{	/* Unsafe/regex.scm 211 */
												obj_t BgL_pairz00_2118;

												BgL_pairz00_2118 = CDR(((obj_t) BgL_posz00_1325));
												BgL_arg1335z00_1333 = CAR(BgL_pairz00_2118);
											}
											VECTOR_SET(BgL_vresz00_32, BgL_arg1334z00_1332,
												BgL_arg1335z00_1333);
										}
										{	/* Unsafe/regex.scm 212 */
											long BgL_arg1336z00_1334;
											obj_t BgL_arg1337z00_1335;

											BgL_arg1336z00_1334 = (BgL_iz00_1324 + 2L);
											BgL_arg1337z00_1335 = CDR(((obj_t) BgL_posz00_1325));
											{
												obj_t BgL_posz00_3354;
												long BgL_iz00_3353;

												BgL_iz00_3353 = BgL_arg1336z00_1334;
												BgL_posz00_3354 = BgL_arg1337z00_1335;
												BgL_posz00_1325 = BgL_posz00_3354;
												BgL_iz00_1324 = BgL_iz00_3353;
												goto BgL_zc3z04anonymousza31328ze3z87_1326;
											}
										}
									}
								else
									{	/* Unsafe/regex.scm 209 */
										VECTOR_SET(BgL_vresz00_32, BgL_iz00_1324, BINT(-1L));
										VECTOR_SET(BgL_vresz00_32, (BgL_iz00_1324 + 2L), BINT(-1L));
										{	/* Unsafe/regex.scm 216 */
											long BgL_arg1339z00_1337;
											obj_t BgL_arg1341z00_1338;

											BgL_arg1339z00_1337 = (BgL_iz00_1324 + 2L);
											BgL_arg1341z00_1338 = CDR(((obj_t) BgL_posz00_1325));
											{
												obj_t BgL_posz00_3364;
												long BgL_iz00_3363;

												BgL_iz00_3363 = BgL_arg1339z00_1337;
												BgL_posz00_3364 = BgL_arg1341z00_1338;
												BgL_posz00_1325 = BgL_posz00_3364;
												BgL_iz00_1324 = BgL_iz00_3363;
												goto BgL_zc3z04anonymousza31328ze3z87_1326;
											}
										}
									}
							}
					}
				}
			}
		}

	}



/* pregexp-read-escaped-number */
	obj_t BGl_pregexpzd2readzd2escapedzd2numberzd2zz__regexpz00(obj_t BgL_sz00_38,
		obj_t BgL_iz00_39, long BgL_nz00_40)
	{
		{	/* Unsafe/regex.scm 221 */
			if ((((long) CINT(BgL_iz00_39) + 1L) < BgL_nz00_40))
				{	/* Unsafe/regex.scm 224 */
					unsigned char BgL_cz00_1345;

					BgL_cz00_1345 =
						STRING_REF(BgL_sz00_38, ((long) CINT(BgL_iz00_39) + 1L));
					if (isdigit(BgL_cz00_1345))
						{	/* Unsafe/regex.scm 226 */
							long BgL_g1052z00_1347;
							obj_t BgL_g1053z00_1348;

							BgL_g1052z00_1347 = ((long) CINT(BgL_iz00_39) + 2L);
							{	/* Unsafe/regex.scm 226 */
								obj_t BgL_list1363z00_1373;

								BgL_list1363z00_1373 =
									MAKE_YOUNG_PAIR(BCHAR(BgL_cz00_1345), BNIL);
								BgL_g1053z00_1348 = BgL_list1363z00_1373;
							}
							{
								long BgL_iz00_1350;
								obj_t BgL_rz00_1351;

								BgL_iz00_1350 = BgL_g1052z00_1347;
								BgL_rz00_1351 = BgL_g1053z00_1348;
							BgL_zc3z04anonymousza31345ze3z87_1352:
								if ((BgL_iz00_1350 >= BgL_nz00_40))
									{	/* Unsafe/regex.scm 228 */
										obj_t BgL_arg1347z00_1354;

										{	/* Unsafe/regex.scm 228 */
											obj_t BgL_arg1352z00_1357;

											BgL_arg1352z00_1357 =
												BGl_listzd2ze3stringz31zz__r4_strings_6_7z00
												(bgl_reverse_bang(BgL_rz00_1351));
											{	/* Ieee/number.scm 175 */

												BgL_arg1347z00_1354 =
													BGl_stringzd2ze3numberz31zz__r4_numbers_6_5z00
													(BgL_arg1352z00_1357, BINT(10L));
											}
										}
										{	/* Unsafe/regex.scm 228 */
											obj_t BgL_list1348z00_1355;

											{	/* Unsafe/regex.scm 228 */
												obj_t BgL_arg1349z00_1356;

												BgL_arg1349z00_1356 =
													MAKE_YOUNG_PAIR(BINT(BgL_iz00_1350), BNIL);
												BgL_list1348z00_1355 =
													MAKE_YOUNG_PAIR(BgL_arg1347z00_1354,
													BgL_arg1349z00_1356);
											}
											return BgL_list1348z00_1355;
										}
									}
								else
									{	/* Unsafe/regex.scm 229 */
										unsigned char BgL_cz00_1361;

										BgL_cz00_1361 = STRING_REF(BgL_sz00_38, BgL_iz00_1350);
										if (isdigit(BgL_cz00_1361))
											{	/* Unsafe/regex.scm 231 */
												long BgL_arg1356z00_1363;
												obj_t BgL_arg1357z00_1364;

												BgL_arg1356z00_1363 = (BgL_iz00_1350 + 1L);
												BgL_arg1357z00_1364 =
													MAKE_YOUNG_PAIR(BCHAR(BgL_cz00_1361), BgL_rz00_1351);
												{
													obj_t BgL_rz00_3394;
													long BgL_iz00_3393;

													BgL_iz00_3393 = BgL_arg1356z00_1363;
													BgL_rz00_3394 = BgL_arg1357z00_1364;
													BgL_rz00_1351 = BgL_rz00_3394;
													BgL_iz00_1350 = BgL_iz00_3393;
													goto BgL_zc3z04anonymousza31345ze3z87_1352;
												}
											}
										else
											{	/* Unsafe/regex.scm 232 */
												obj_t BgL_arg1358z00_1365;

												{	/* Unsafe/regex.scm 232 */
													obj_t BgL_arg1361z00_1368;

													BgL_arg1361z00_1368 =
														BGl_listzd2ze3stringz31zz__r4_strings_6_7z00
														(bgl_reverse_bang(BgL_rz00_1351));
													{	/* Ieee/number.scm 175 */

														BgL_arg1358z00_1365 =
															BGl_stringzd2ze3numberz31zz__r4_numbers_6_5z00
															(BgL_arg1361z00_1368, BINT(10L));
													}
												}
												{	/* Unsafe/regex.scm 232 */
													obj_t BgL_list1359z00_1366;

													{	/* Unsafe/regex.scm 232 */
														obj_t BgL_arg1360z00_1367;

														BgL_arg1360z00_1367 =
															MAKE_YOUNG_PAIR(BINT(BgL_iz00_1350), BNIL);
														BgL_list1359z00_1366 =
															MAKE_YOUNG_PAIR(BgL_arg1358z00_1365,
															BgL_arg1360z00_1367);
													}
													return BgL_list1359z00_1366;
												}
											}
									}
							}
						}
					else
						{	/* Unsafe/regex.scm 225 */
							return BFALSE;
						}
				}
			else
				{	/* Unsafe/regex.scm 223 */
					return BFALSE;
				}
		}

	}



/* pregexp-list-ref */
	obj_t BGl_pregexpzd2listzd2refz00zz__regexpz00(obj_t BgL_sz00_41,
		obj_t BgL_iz00_42)
	{
		{	/* Unsafe/regex.scm 238 */
			{
				obj_t BgL_sz00_2166;
				long BgL_kz00_2167;

				BgL_sz00_2166 = BgL_sz00_41;
				BgL_kz00_2167 = 0L;
			BgL_loopz00_2165:
				if (NULLP(BgL_sz00_2166))
					{	/* Unsafe/regex.scm 242 */
						return BFALSE;
					}
				else
					{	/* Unsafe/regex.scm 242 */
						if ((BgL_kz00_2167 == (long) CINT(BgL_iz00_42)))
							{	/* Unsafe/regex.scm 243 */
								return CAR(((obj_t) BgL_sz00_2166));
							}
						else
							{
								long BgL_kz00_3412;
								obj_t BgL_sz00_3409;

								BgL_sz00_3409 = CDR(((obj_t) BgL_sz00_2166));
								BgL_kz00_3412 = (BgL_kz00_2167 + 1L);
								BgL_kz00_2167 = BgL_kz00_3412;
								BgL_sz00_2166 = BgL_sz00_3409;
								goto BgL_loopz00_2165;
							}
					}
			}
		}

	}



/* pregexp-replace-aux */
	obj_t BGl_pregexpzd2replacezd2auxz00zz__regexpz00(obj_t BgL_strz00_43,
		obj_t BgL_insz00_44, long BgL_nz00_45, obj_t BgL_backrefsz00_46)
	{
		{	/* Unsafe/regex.scm 249 */
			{
				obj_t BgL_iz00_1386;
				obj_t BgL_rz00_1387;

				BgL_iz00_1386 = BINT(0L);
				BgL_rz00_1387 = BGl_string1924z00zz__regexpz00;
			BgL_zc3z04anonymousza31371ze3z87_1388:
				if (((long) CINT(BgL_iz00_1386) >= BgL_nz00_45))
					{	/* Unsafe/regex.scm 251 */
						return BgL_rz00_1387;
					}
				else
					{	/* Unsafe/regex.scm 252 */
						unsigned char BgL_cz00_1390;

						BgL_cz00_1390 =
							STRING_REF(BgL_insz00_44, (long) CINT(BgL_iz00_1386));
						if ((BgL_cz00_1390 == ((unsigned char) '\\')))
							{	/* Unsafe/regex.scm 254 */
								obj_t BgL_brzd2izd2_1392;

								BgL_brzd2izd2_1392 =
									BGl_pregexpzd2readzd2escapedzd2numberzd2zz__regexpz00
									(BgL_insz00_44, BgL_iz00_1386, BgL_nz00_45);
								{	/* Unsafe/regex.scm 254 */
									obj_t BgL_brz00_1393;

									if (CBOOL(BgL_brzd2izd2_1392))
										{	/* Unsafe/regex.scm 255 */
											BgL_brz00_1393 = CAR(((obj_t) BgL_brzd2izd2_1392));
										}
									else
										{	/* Unsafe/regex.scm 255 */
											if (
												(STRING_REF(BgL_insz00_44,
														((long) CINT(BgL_iz00_1386) + 1L)) ==
													((unsigned char) '&')))
												{	/* Unsafe/regex.scm 256 */
													BgL_brz00_1393 = BINT(0L);
												}
											else
												{	/* Unsafe/regex.scm 256 */
													BgL_brz00_1393 = BFALSE;
												}
										}
									{	/* Unsafe/regex.scm 255 */
										obj_t BgL_iz00_1394;

										if (CBOOL(BgL_brzd2izd2_1392))
											{	/* Unsafe/regex.scm 258 */
												obj_t BgL_pairz00_2196;

												BgL_pairz00_2196 = CDR(((obj_t) BgL_brzd2izd2_1392));
												BgL_iz00_1394 = CAR(BgL_pairz00_2196);
											}
										else
											{	/* Unsafe/regex.scm 258 */
												if (CBOOL(BgL_brz00_1393))
													{	/* Unsafe/regex.scm 259 */
														BgL_iz00_1394 = ADDFX(BgL_iz00_1386, BINT(2L));
													}
												else
													{	/* Unsafe/regex.scm 259 */
														BgL_iz00_1394 = ADDFX(BgL_iz00_1386, BINT(1L));
													}
											}
										{	/* Unsafe/regex.scm 258 */

											if (CBOOL(BgL_brz00_1393))
												{	/* Unsafe/regex.scm 267 */
													obj_t BgL_arg1374z00_1395;

													{	/* Unsafe/regex.scm 267 */
														obj_t BgL_backrefz00_1396;

														BgL_backrefz00_1396 =
															BGl_pregexpzd2listzd2refz00zz__regexpz00
															(BgL_backrefsz00_46, BgL_brz00_1393);
														if (CBOOL(BgL_backrefz00_1396))
															{	/* Unsafe/regex.scm 270 */
																obj_t BgL_arg1375z00_1397;

																{	/* Unsafe/regex.scm 270 */
																	obj_t BgL_arg1376z00_1398;
																	obj_t BgL_arg1377z00_1399;

																	BgL_arg1376z00_1398 =
																		CAR(((obj_t) BgL_backrefz00_1396));
																	BgL_arg1377z00_1399 =
																		CDR(((obj_t) BgL_backrefz00_1396));
																	BgL_arg1375z00_1397 =
																		c_substring(BgL_strz00_43,
																		(long) CINT(BgL_arg1376z00_1398),
																		(long) CINT(BgL_arg1377z00_1399));
																}
																BgL_arg1374z00_1395 =
																	string_append(BgL_rz00_1387,
																	BgL_arg1375z00_1397);
															}
														else
															{	/* Unsafe/regex.scm 268 */
																BgL_arg1374z00_1395 = BgL_rz00_1387;
															}
													}
													{
														obj_t BgL_rz00_3457;
														obj_t BgL_iz00_3456;

														BgL_iz00_3456 = BgL_iz00_1394;
														BgL_rz00_3457 = BgL_arg1374z00_1395;
														BgL_rz00_1387 = BgL_rz00_3457;
														BgL_iz00_1386 = BgL_iz00_3456;
														goto BgL_zc3z04anonymousza31371ze3z87_1388;
													}
												}
											else
												{	/* Unsafe/regex.scm 262 */
													unsigned char BgL_c2z00_1400;

													BgL_c2z00_1400 =
														STRING_REF(BgL_insz00_44,
														(long) CINT(BgL_iz00_1394));
													{	/* Unsafe/regex.scm 263 */
														long BgL_arg1379z00_1401;
														obj_t BgL_arg1382z00_1402;

														BgL_arg1379z00_1401 =
															((long) CINT(BgL_iz00_1394) + 1L);
														if ((BgL_c2z00_1400 == ((unsigned char) '$')))
															{	/* Unsafe/regex.scm 264 */
																BgL_arg1382z00_1402 = BgL_rz00_1387;
															}
														else
															{	/* Unsafe/regex.scm 265 */
																obj_t BgL_arg1384z00_1404;

																{	/* Unsafe/regex.scm 265 */
																	obj_t BgL_list1385z00_1405;

																	BgL_list1385z00_1405 =
																		MAKE_YOUNG_PAIR(BCHAR(BgL_c2z00_1400),
																		BNIL);
																	BgL_arg1384z00_1404 =
																		BGl_listzd2ze3stringz31zz__r4_strings_6_7z00
																		(BgL_list1385z00_1405);
																}
																BgL_arg1382z00_1402 =
																	string_append(BgL_rz00_1387,
																	BgL_arg1384z00_1404);
															}
														{
															obj_t BgL_rz00_3470;
															obj_t BgL_iz00_3468;

															BgL_iz00_3468 = BINT(BgL_arg1379z00_1401);
															BgL_rz00_3470 = BgL_arg1382z00_1402;
															BgL_rz00_1387 = BgL_rz00_3470;
															BgL_iz00_1386 = BgL_iz00_3468;
															goto BgL_zc3z04anonymousza31371ze3z87_1388;
														}
													}
												}
										}
									}
								}
							}
						else
							{	/* Unsafe/regex.scm 272 */
								long BgL_arg1391z00_1411;
								obj_t BgL_arg1392z00_1412;

								BgL_arg1391z00_1411 = ((long) CINT(BgL_iz00_1386) + 1L);
								{	/* Unsafe/regex.scm 272 */
									obj_t BgL_arg1394z00_1413;

									{	/* Unsafe/regex.scm 272 */
										obj_t BgL_list1395z00_1414;

										BgL_list1395z00_1414 =
											MAKE_YOUNG_PAIR(BCHAR(BgL_cz00_1390), BNIL);
										BgL_arg1394z00_1413 =
											BGl_listzd2ze3stringz31zz__r4_strings_6_7z00
											(BgL_list1395z00_1414);
									}
									BgL_arg1392z00_1412 =
										string_append(BgL_rz00_1387, BgL_arg1394z00_1413);
								}
								{
									obj_t BgL_rz00_3479;
									obj_t BgL_iz00_3477;

									BgL_iz00_3477 = BINT(BgL_arg1391z00_1411);
									BgL_rz00_3479 = BgL_arg1392z00_1412;
									BgL_rz00_1387 = BgL_rz00_3479;
									BgL_iz00_1386 = BgL_iz00_3477;
									goto BgL_zc3z04anonymousza31371ze3z87_1388;
								}
							}
					}
			}
		}

	}



/* pregexp-split */
	BGL_EXPORTED_DEF obj_t BGl_pregexpzd2splitzd2zz__regexpz00(obj_t
		BgL_patz00_47, obj_t BgL_strz00_48)
	{
		{	/* Unsafe/regex.scm 277 */
			{	/* Unsafe/regex.scm 279 */
				long BgL_nz00_1416;

				BgL_nz00_1416 = STRING_LENGTH(BgL_strz00_48);
				{
					obj_t BgL_iz00_1419;
					obj_t BgL_rz00_1420;
					bool_t BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_1421;

					BgL_iz00_1419 = BINT(0L);
					BgL_rz00_1420 = BNIL;
					BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_1421 = ((bool_t) 0);
				BgL_zc3z04anonymousza31396ze3z87_1422:
					if (((long) CINT(BgL_iz00_1419) >= BgL_nz00_1416))
						{	/* Unsafe/regex.scm 281 */
							return bgl_reverse_bang(BgL_rz00_1420);
						}
					else
						{	/* Unsafe/regex.scm 282 */
							obj_t BgL_g1055z00_1424;

							{	/* Unsafe/regex.scm 67 */

								if (BGL_REGEXPP(BgL_patz00_47))
									{	/* Unsafe/regex.scm 179 */
										BgL_g1055z00_1424 =
											bgl_regmatch(BgL_patz00_47,
											BSTRING_TO_STRING(BgL_strz00_48), ((bool_t) 0),
											CINT(BgL_iz00_1419), (int) (BgL_nz00_1416), (int) (0L));
									}
								else
									{	/* Unsafe/regex.scm 181 */
										obj_t BgL_rxz00_2215;

										BgL_rxz00_2215 =
											bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00
											(BgL_patz00_47), BNIL, ((bool_t) 0));
										{	/* Unsafe/regex.scm 181 */
											obj_t BgL_valz00_2217;

											BgL_valz00_2217 =
												bgl_regmatch(BgL_rxz00_2215,
												BSTRING_TO_STRING(BgL_strz00_48), ((bool_t) 0),
												CINT(BgL_iz00_1419), (int) (BgL_nz00_1416), (int) (0L));
											{	/* Unsafe/regex.scm 182 */

												bgl_regfree(BgL_rxz00_2215);
												BgL_g1055z00_1424 = BgL_valz00_2217;
							}}}}
							if (CBOOL(BgL_g1055z00_1424))
								{	/* Unsafe/regex.scm 285 */
									obj_t BgL_jkz00_1427;

									BgL_jkz00_1427 = CAR(((obj_t) BgL_g1055z00_1424));
									{	/* Unsafe/regex.scm 286 */
										obj_t BgL_jz00_1428;
										obj_t BgL_kz00_1429;

										BgL_jz00_1428 = CAR(((obj_t) BgL_jkz00_1427));
										BgL_kz00_1429 = CDR(((obj_t) BgL_jkz00_1427));
										if (
											((long) CINT(BgL_jz00_1428) ==
												(long) CINT(BgL_kz00_1429)))
											{	/* Unsafe/regex.scm 290 */
												long BgL_arg1399z00_1431;
												obj_t BgL_arg1400z00_1432;

												BgL_arg1399z00_1431 = ((long) CINT(BgL_kz00_1429) + 1L);
												BgL_arg1400z00_1432 =
													MAKE_YOUNG_PAIR(c_substring(BgL_strz00_48,
														(long) CINT(BgL_iz00_1419),
														((long) CINT(BgL_jz00_1428) + 1L)), BgL_rz00_1420);
												{
													bool_t
														BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3523;
													obj_t BgL_rz00_3522;
													obj_t BgL_iz00_3520;

													BgL_iz00_3520 = BINT(BgL_arg1399z00_1431);
													BgL_rz00_3522 = BgL_arg1400z00_1432;
													BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3523
														= ((bool_t) 1);
													BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_1421
														=
														BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3523;
													BgL_rz00_1420 = BgL_rz00_3522;
													BgL_iz00_1419 = BgL_iz00_3520;
													goto BgL_zc3z04anonymousza31396ze3z87_1422;
												}
											}
										else
											{	/* Unsafe/regex.scm 292 */
												bool_t BgL_test2060z00_3524;

												if (
													((long) CINT(BgL_jz00_1428) ==
														(long) CINT(BgL_iz00_1419)))
													{	/* Unsafe/regex.scm 292 */
														BgL_test2060z00_3524 =
															BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_1421;
													}
												else
													{	/* Unsafe/regex.scm 292 */
														BgL_test2060z00_3524 = ((bool_t) 0);
													}
												if (BgL_test2060z00_3524)
													{
														bool_t
															BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3530;
														obj_t BgL_iz00_3529;

														BgL_iz00_3529 = BgL_kz00_1429;
														BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3530
															= ((bool_t) 0);
														BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_1421
															=
															BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3530;
														BgL_iz00_1419 = BgL_iz00_3529;
														goto BgL_zc3z04anonymousza31396ze3z87_1422;
													}
												else
													{	/* Unsafe/regex.scm 296 */
														obj_t BgL_arg1405z00_1437;

														BgL_arg1405z00_1437 =
															MAKE_YOUNG_PAIR(c_substring(BgL_strz00_48,
																(long) CINT(BgL_iz00_1419),
																(long) CINT(BgL_jz00_1428)), BgL_rz00_1420);
														{
															bool_t
																BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3537;
															obj_t BgL_rz00_3536;
															obj_t BgL_iz00_3535;

															BgL_iz00_3535 = BgL_kz00_1429;
															BgL_rz00_3536 = BgL_arg1405z00_1437;
															BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3537
																= ((bool_t) 0);
															BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_1421
																=
																BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3537;
															BgL_rz00_1420 = BgL_rz00_3536;
															BgL_iz00_1419 = BgL_iz00_3535;
															goto BgL_zc3z04anonymousza31396ze3z87_1422;
														}
													}
											}
									}
								}
							else
								{	/* Unsafe/regex.scm 297 */
									obj_t BgL_arg1407z00_1440;

									BgL_arg1407z00_1440 =
										MAKE_YOUNG_PAIR(c_substring(BgL_strz00_48,
											(long) CINT(BgL_iz00_1419), BgL_nz00_1416),
										BgL_rz00_1420);
									{
										bool_t
											BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3544;
										obj_t BgL_rz00_3543;
										obj_t BgL_iz00_3541;

										BgL_iz00_3541 = BINT(BgL_nz00_1416);
										BgL_rz00_3543 = BgL_arg1407z00_1440;
										BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3544 =
											((bool_t) 0);
										BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_1421 =
											BgL_pickedzd2upzd2onezd2undelimitedzd2charzf3zf3_3544;
										BgL_rz00_1420 = BgL_rz00_3543;
										BgL_iz00_1419 = BgL_iz00_3541;
										goto BgL_zc3z04anonymousza31396ze3z87_1422;
									}
								}
						}
				}
			}
		}

	}



/* &pregexp-split */
	obj_t BGl_z62pregexpzd2splitzb0zz__regexpz00(obj_t BgL_envz00_2482,
		obj_t BgL_patz00_2483, obj_t BgL_strz00_2484)
	{
		{	/* Unsafe/regex.scm 277 */
			{	/* Unsafe/regex.scm 279 */
				obj_t BgL_auxz00_3546;

				if (STRINGP(BgL_strz00_2484))
					{	/* Unsafe/regex.scm 279 */
						BgL_auxz00_3546 = BgL_strz00_2484;
					}
				else
					{
						obj_t BgL_auxz00_3549;

						BgL_auxz00_3549 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(11051L), BGl_string1925z00zz__regexpz00,
							BGl_string1918z00zz__regexpz00, BgL_strz00_2484);
						FAILURE(BgL_auxz00_3549, BFALSE, BFALSE);
					}
				return
					BGl_pregexpzd2splitzd2zz__regexpz00(BgL_patz00_2483, BgL_auxz00_3546);
			}
		}

	}



/* pregexp-replace */
	BGL_EXPORTED_DEF obj_t BGl_pregexpzd2replacezd2zz__regexpz00(obj_t
		BgL_patz00_49, obj_t BgL_strz00_50, obj_t BgL_insz00_51)
	{
		{	/* Unsafe/regex.scm 302 */
			{	/* Unsafe/regex.scm 303 */
				long BgL_nz00_1448;

				BgL_nz00_1448 = STRING_LENGTH(BgL_strz00_50);
				{	/* Unsafe/regex.scm 303 */
					obj_t BgL_ppz00_1449;

					{	/* Unsafe/regex.scm 67 */

						if (BGL_REGEXPP(BgL_patz00_49))
							{	/* Unsafe/regex.scm 179 */
								BgL_ppz00_1449 =
									bgl_regmatch(BgL_patz00_49,
									BSTRING_TO_STRING(BgL_strz00_50), ((bool_t) 0),
									(int) (0L), (int) (BgL_nz00_1448), (int) (0L));
							}
						else
							{	/* Unsafe/regex.scm 181 */
								obj_t BgL_rxz00_2239;

								BgL_rxz00_2239 =
									bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00
									(BgL_patz00_49), BNIL, ((bool_t) 0));
								{	/* Unsafe/regex.scm 181 */
									obj_t BgL_valz00_2241;

									BgL_valz00_2241 =
										bgl_regmatch(BgL_rxz00_2239,
										BSTRING_TO_STRING(BgL_strz00_50), ((bool_t) 0),
										(int) (0L), (int) (BgL_nz00_1448), (int) (0L));
									{	/* Unsafe/regex.scm 182 */

										bgl_regfree(BgL_rxz00_2239);
										BgL_ppz00_1449 = BgL_valz00_2241;
					}}}}
					{	/* Unsafe/regex.scm 304 */

						if (CBOOL(BgL_ppz00_1449))
							{	/* Unsafe/regex.scm 306 */
								long BgL_inszd2lenzd2_1450;
								obj_t BgL_mzd2izd2_1451;
								obj_t BgL_mzd2nzd2_1452;

								BgL_inszd2lenzd2_1450 = STRING_LENGTH(BgL_insz00_51);
								{	/* Unsafe/regex.scm 307 */
									obj_t BgL_pairz00_2246;

									BgL_pairz00_2246 = CAR(((obj_t) BgL_ppz00_1449));
									BgL_mzd2izd2_1451 = CAR(BgL_pairz00_2246);
								}
								{	/* Unsafe/regex.scm 308 */
									obj_t BgL_pairz00_2250;

									BgL_pairz00_2250 = CAR(((obj_t) BgL_ppz00_1449));
									BgL_mzd2nzd2_1452 = CDR(BgL_pairz00_2250);
								}
								return
									string_append_3(c_substring(BgL_strz00_50, 0L,
										(long) CINT(BgL_mzd2izd2_1451)),
									BGl_pregexpzd2replacezd2auxz00zz__regexpz00(BgL_strz00_50,
										BgL_insz00_51, BgL_inszd2lenzd2_1450, BgL_ppz00_1449),
									c_substring(BgL_strz00_50, (long) CINT(BgL_mzd2nzd2_1452),
										BgL_nz00_1448));
							}
						else
							{	/* Unsafe/regex.scm 305 */
								return BgL_strz00_50;
							}
					}
				}
			}
		}

	}



/* &pregexp-replace */
	obj_t BGl_z62pregexpzd2replacezb0zz__regexpz00(obj_t BgL_envz00_2485,
		obj_t BgL_patz00_2486, obj_t BgL_strz00_2487, obj_t BgL_insz00_2488)
	{
		{	/* Unsafe/regex.scm 302 */
			{	/* Unsafe/regex.scm 303 */
				obj_t BgL_auxz00_3592;
				obj_t BgL_auxz00_3585;

				if (STRINGP(BgL_insz00_2488))
					{	/* Unsafe/regex.scm 303 */
						BgL_auxz00_3592 = BgL_insz00_2488;
					}
				else
					{
						obj_t BgL_auxz00_3595;

						BgL_auxz00_3595 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(12022L), BGl_string1926z00zz__regexpz00,
							BGl_string1918z00zz__regexpz00, BgL_insz00_2488);
						FAILURE(BgL_auxz00_3595, BFALSE, BFALSE);
					}
				if (STRINGP(BgL_strz00_2487))
					{	/* Unsafe/regex.scm 303 */
						BgL_auxz00_3585 = BgL_strz00_2487;
					}
				else
					{
						obj_t BgL_auxz00_3588;

						BgL_auxz00_3588 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(12022L), BGl_string1926z00zz__regexpz00,
							BGl_string1918z00zz__regexpz00, BgL_strz00_2487);
						FAILURE(BgL_auxz00_3588, BFALSE, BFALSE);
					}
				return
					BGl_pregexpzd2replacezd2zz__regexpz00(BgL_patz00_2486,
					BgL_auxz00_3585, BgL_auxz00_3592);
			}
		}

	}



/* pregexp-replace* */
	BGL_EXPORTED_DEF obj_t BGl_pregexpzd2replaceza2z70zz__regexpz00(obj_t
		BgL_patz00_52, obj_t BgL_strz00_53, obj_t BgL_insz00_54)
	{
		{	/* Unsafe/regex.scm 317 */
			{	/* Unsafe/regex.scm 320 */
				obj_t BgL_patz00_1461;
				long BgL_nz00_1462;
				long BgL_inszd2lenzd2_1463;

				if (STRINGP(BgL_patz00_52))
					{	/* Unsafe/regex.scm 320 */
						BgL_patz00_1461 =
							bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00
							(BgL_patz00_52), BNIL, ((bool_t) 1));
					}
				else
					{	/* Unsafe/regex.scm 320 */
						BgL_patz00_1461 = BgL_patz00_52;
					}
				BgL_nz00_1462 = STRING_LENGTH(BgL_strz00_53);
				BgL_inszd2lenzd2_1463 = STRING_LENGTH(BgL_insz00_54);
				{
					obj_t BgL_iz00_1465;
					obj_t BgL_rz00_1466;

					BgL_iz00_1465 = BINT(0L);
					BgL_rz00_1466 = BGl_string1924z00zz__regexpz00;
				BgL_zc3z04anonymousza31412ze3z87_1467:
					if (((long) CINT(BgL_iz00_1465) >= BgL_nz00_1462))
						{	/* Unsafe/regex.scm 326 */
							return BgL_rz00_1466;
						}
					else
						{	/* Unsafe/regex.scm 327 */
							obj_t BgL_ppz00_1469;

							{	/* Unsafe/regex.scm 67 */

								if (BGL_REGEXPP(BgL_patz00_1461))
									{	/* Unsafe/regex.scm 179 */
										BgL_ppz00_1469 =
											bgl_regmatch(BgL_patz00_1461,
											BSTRING_TO_STRING(BgL_strz00_53), ((bool_t) 0),
											CINT(BgL_iz00_1465), (int) (BgL_nz00_1462), (int) (0L));
									}
								else
									{	/* Unsafe/regex.scm 181 */
										obj_t BgL_rxz00_2264;

										BgL_rxz00_2264 =
											bgl_regcomp(BGl_pregexpzd2normaliza7ez75zz__regexpz00
											(BgL_patz00_1461), BNIL, ((bool_t) 0));
										{	/* Unsafe/regex.scm 181 */
											obj_t BgL_valz00_2266;

											BgL_valz00_2266 =
												bgl_regmatch(BgL_rxz00_2264,
												BSTRING_TO_STRING(BgL_strz00_53), ((bool_t) 0),
												CINT(BgL_iz00_1465), (int) (BgL_nz00_1462), (int) (0L));
											{	/* Unsafe/regex.scm 182 */

												bgl_regfree(BgL_rxz00_2264);
												BgL_ppz00_1469 = BgL_valz00_2266;
							}}}}
							if (CBOOL(BgL_ppz00_1469))
								{	/* Unsafe/regex.scm 338 */
									obj_t BgL_arg1414z00_1470;
									obj_t BgL_arg1415z00_1471;

									{	/* Unsafe/regex.scm 338 */
										obj_t BgL_pairz00_2270;

										BgL_pairz00_2270 = CAR(((obj_t) BgL_ppz00_1469));
										BgL_arg1414z00_1470 = CDR(BgL_pairz00_2270);
									}
									{	/* Unsafe/regex.scm 341 */
										obj_t BgL_arg1416z00_1472;
										obj_t BgL_arg1417z00_1473;

										{	/* Unsafe/regex.scm 341 */
											obj_t BgL_arg1418z00_1474;

											{	/* Unsafe/regex.scm 341 */
												obj_t BgL_pairz00_2274;

												BgL_pairz00_2274 = CAR(((obj_t) BgL_ppz00_1469));
												BgL_arg1418z00_1474 = CAR(BgL_pairz00_2274);
											}
											BgL_arg1416z00_1472 =
												c_substring(BgL_strz00_53,
												(long) CINT(BgL_iz00_1465),
												(long) CINT(BgL_arg1418z00_1474));
										}
										BgL_arg1417z00_1473 =
											BGl_pregexpzd2replacezd2auxz00zz__regexpz00(BgL_strz00_53,
											BgL_insz00_54, BgL_inszd2lenzd2_1463, BgL_ppz00_1469);
										BgL_arg1415z00_1471 =
											string_append_3(BgL_rz00_1466, BgL_arg1416z00_1472,
											BgL_arg1417z00_1473);
									}
									{
										obj_t BgL_rz00_3638;
										obj_t BgL_iz00_3637;

										BgL_iz00_3637 = BgL_arg1414z00_1470;
										BgL_rz00_3638 = BgL_arg1415z00_1471;
										BgL_rz00_1466 = BgL_rz00_3638;
										BgL_iz00_1465 = BgL_iz00_3637;
										goto BgL_zc3z04anonymousza31412ze3z87_1467;
									}
								}
							else
								{	/* Unsafe/regex.scm 328 */
									if (((long) CINT(BgL_iz00_1465) == 0L))
										{	/* Unsafe/regex.scm 329 */
											return BgL_strz00_53;
										}
									else
										{	/* Unsafe/regex.scm 329 */
											return
												string_append(BgL_rz00_1466,
												c_substring(BgL_strz00_53,
													(long) CINT(BgL_iz00_1465), BgL_nz00_1462));
		}}}}}}

	}



/* &pregexp-replace* */
	obj_t BGl_z62pregexpzd2replaceza2z12zz__regexpz00(obj_t BgL_envz00_2489,
		obj_t BgL_patz00_2490, obj_t BgL_strz00_2491, obj_t BgL_insz00_2492)
	{
		{	/* Unsafe/regex.scm 317 */
			{	/* Unsafe/regex.scm 320 */
				obj_t BgL_auxz00_3653;
				obj_t BgL_auxz00_3646;

				if (STRINGP(BgL_insz00_2492))
					{	/* Unsafe/regex.scm 320 */
						BgL_auxz00_3653 = BgL_insz00_2492;
					}
				else
					{
						obj_t BgL_auxz00_3656;

						BgL_auxz00_3656 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(12646L), BGl_string1927z00zz__regexpz00,
							BGl_string1918z00zz__regexpz00, BgL_insz00_2492);
						FAILURE(BgL_auxz00_3656, BFALSE, BFALSE);
					}
				if (STRINGP(BgL_strz00_2491))
					{	/* Unsafe/regex.scm 320 */
						BgL_auxz00_3646 = BgL_strz00_2491;
					}
				else
					{
						obj_t BgL_auxz00_3649;

						BgL_auxz00_3649 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(12646L), BGl_string1927z00zz__regexpz00,
							BGl_string1918z00zz__regexpz00, BgL_strz00_2491);
						FAILURE(BgL_auxz00_3649, BFALSE, BFALSE);
					}
				return
					BGl_pregexpzd2replaceza2z70zz__regexpz00(BgL_patz00_2490,
					BgL_auxz00_3646, BgL_auxz00_3653);
			}
		}

	}



/* pregexp-quote */
	BGL_EXPORTED_DEF obj_t BGl_pregexpzd2quotezd2zz__regexpz00(obj_t BgL_sz00_55)
	{
		{	/* Unsafe/regex.scm 347 */
			{	/* Unsafe/regex.scm 348 */
				long BgL_g1057z00_1485;

				BgL_g1057z00_1485 = (STRING_LENGTH(BgL_sz00_55) - 1L);
				{
					long BgL_iz00_1488;
					obj_t BgL_rz00_1489;

					BgL_iz00_1488 = BgL_g1057z00_1485;
					BgL_rz00_1489 = BNIL;
				BgL_zc3z04anonymousza31423ze3z87_1490:
					if ((BgL_iz00_1488 < 0L))
						{	/* Unsafe/regex.scm 349 */
							return
								BGl_listzd2ze3stringz31zz__r4_strings_6_7z00(BgL_rz00_1489);
						}
					else
						{	/* Unsafe/regex.scm 351 */
							long BgL_arg1425z00_1492;
							obj_t BgL_arg1426z00_1493;

							BgL_arg1425z00_1492 = (BgL_iz00_1488 - 1L);
							{	/* Unsafe/regex.scm 352 */
								unsigned char BgL_cz00_1494;

								BgL_cz00_1494 = STRING_REF(BgL_sz00_55, BgL_iz00_1488);
								if (CBOOL(BGl_memvz00zz__r4_pairs_and_lists_6_3z00(BCHAR
											(BgL_cz00_1494), BGl_list1928z00zz__regexpz00)))
									{	/* Unsafe/regex.scm 355 */
										obj_t BgL_arg1430z00_1496;

										BgL_arg1430z00_1496 =
											MAKE_YOUNG_PAIR(BCHAR(BgL_cz00_1494), BgL_rz00_1489);
										BgL_arg1426z00_1493 =
											MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '\\')),
											BgL_arg1430z00_1496);
									}
								else
									{	/* Unsafe/regex.scm 353 */
										BgL_arg1426z00_1493 =
											MAKE_YOUNG_PAIR(BCHAR(BgL_cz00_1494), BgL_rz00_1489);
									}
							}
							{
								obj_t BgL_rz00_3679;
								long BgL_iz00_3678;

								BgL_iz00_3678 = BgL_arg1425z00_1492;
								BgL_rz00_3679 = BgL_arg1426z00_1493;
								BgL_rz00_1489 = BgL_rz00_3679;
								BgL_iz00_1488 = BgL_iz00_3678;
								goto BgL_zc3z04anonymousza31423ze3z87_1490;
							}
						}
				}
			}
		}

	}



/* &pregexp-quote */
	obj_t BGl_z62pregexpzd2quotezb0zz__regexpz00(obj_t BgL_envz00_2493,
		obj_t BgL_sz00_2494)
	{
		{	/* Unsafe/regex.scm 347 */
			{	/* Unsafe/regex.scm 348 */
				obj_t BgL_auxz00_3680;

				if (STRINGP(BgL_sz00_2494))
					{	/* Unsafe/regex.scm 348 */
						BgL_auxz00_3680 = BgL_sz00_2494;
					}
				else
					{
						obj_t BgL_auxz00_3683;

						BgL_auxz00_3683 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1907z00zz__regexpz00,
							BINT(13607L), BGl_string1929z00zz__regexpz00,
							BGl_string1918z00zz__regexpz00, BgL_sz00_2494);
						FAILURE(BgL_auxz00_3683, BFALSE, BFALSE);
					}
				return BGl_pregexpzd2quotezd2zz__regexpz00(BgL_auxz00_3680);
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__regexpz00(void)
	{
		{	/* Unsafe/regex.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__regexpz00(void)
	{
		{	/* Unsafe/regex.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__regexpz00(void)
	{
		{	/* Unsafe/regex.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__regexpz00(void)
	{
		{	/* Unsafe/regex.scm 15 */
			return
				BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string1930z00zz__regexpz00));
		}

	}

#ifdef __cplusplus
}
#endif
