diff -urN pcre-7.0/Makefile.vc pcre-7.0-mod/Makefile.vc
--- pcre-7.0/Makefile.vc	1970-01-01 01:00:00.000000000 +0100
+++ pcre-7.0-mod/Makefile.vc	2007-02-01 15:22:18.354698800 +0100
@@ -0,0 +1,76 @@
+TARGET = pcre70.dll
+IMPLIB = pcre.lib
+
+CFLAGS = -O2 -MD -D_WIN32 -DDLL_EXPORT -DSUPPORT_UTF8 -DSUPPORT_UCP
+
+CP = copy /y
+RM = del /q
+
+SOURCES = \
+  pcre_chartables.c \
+  pcre_compile.c \
+  pcre_config.c \
+  pcre_dfa_exec.c \
+  pcre_exec.c \
+  pcre_fullinfo.c \
+  pcre_get.c \
+  pcre_globals.c \
+  pcre_info.c \
+  pcre_maketables.c \
+  pcre_newline.c \
+  pcre_ord2utf8.c \
+  pcre_refcount.c \
+  pcre_study.c \
+  pcre_tables.c \
+  pcre_try_flipped.c \
+  pcre_ucp_searchfuncs.c \
+  pcre_valid_utf8.c \
+  pcre_version.c \
+  pcre_xclass.c \
+  pcreposix.c
+
+OBJECTS = $(SOURCES:.c=.obj) pcre.res
+
+all: config.h $(TARGET)
+
+config.h: config.h.vc
+	-$(RM) $@
+	$(CP) config.h.vc $@
+
+$(TARGET): $(OBJECTS)
+	link -DLL -OUT:$@ -IMPLIB:$(IMPLIB) $(OBJECTS)
+	mt -outputresource:$@ -manifest $@.manifest
+
+pcre.res: pcre.rc
+	rc -fo $@ pcre.rc
+
+pcre_chartables.c: dftables.exe
+	dftables.exe $@
+
+dftables.exe: config.h dftables.c
+	cl -DSUPPORT_UTF8 -DSUPPORT_UCP dftables.c
+
+pcretest.exe: pcretest.c $(TARGET)
+	cl -O2 -F0x1000000 -MD /Fe$@ pcretest.c pcre.lib
+	mt -outputresource:$@ -manifest $@.manifest
+
+test: pcretest.exe
+	RunTest.bat
+	-fc testdata\testoutput1 testout\testoutput1
+	-fc testdata\testoutput2 testout\testoutput2
+	-fc testdata\testoutput3 testout\testoutput3
+	-fc testdata\testoutput4 testout\testoutput4
+	-fc testdata\testoutput5 testout\testoutput5
+	-fc testdata\testoutput6 testout\testoutput6
+	-fc testdata\testoutput7 testout\testoutput7
+	-fc testdata\testoutput8 testout\testoutput8
+	-fc testdata\testoutput9 testout\testoutput9
+
+clean:
+	-$(RM) *.obj pcre.res
+	-$(RM) $(TARGET)* $(IMPLIB)
+	-$(RM) *.pdb *.exp
+	-$(RM) dftables.exe
+	-$(RM) pcre_chartables.c config.h
+	-rmdir /S /Q testout
+	-$(RM) pcretest.exe*
diff -urN pcre-7.0/config.h.vc pcre-7.0-mod/config.h.vc
--- pcre-7.0/config.h.vc	1970-01-01 01:00:00.000000000 +0100
+++ pcre-7.0-mod/config.h.vc	2007-02-01 14:02:01.211979200 +0100
@@ -0,0 +1,143 @@
+
+/* On Unix-like systems config.in is converted by "configure" into config.h.
+Some other environments also support the use of "configure". PCRE is written in
+Standard C, but there are a few non-standard things it can cope with, allowing
+it to run on SunOS4 and other "close to standard" systems.
+
+On a non-Unix-like system you should just copy this file into config.h, and set
+up the macros the way you need them. You should normally change the definitions
+of HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way
+autoconf works, these cannot be made the defaults. If your system has bcopy()
+and not memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE.
+If your system has neither bcopy() nor memmove(), leave them both as 0; an
+emulation function will be used. */
+
+/* If you are compiling for a system that uses EBCDIC instead of ASCII
+character codes, define this macro as 1. On systems that can use "configure",
+this can be done via --enable-ebcdic. */
+
+#ifndef EBCDIC
+#define EBCDIC 0
+#endif
+
+/* If you are compiling for a system other than a Unix-like system or Win32,
+and it needs some magic to be inserted before the definition of a function that
+is exported by the library, define this macro to contain the relevant magic. If
+you do not define this macro, it defaults to "extern" for a C compiler and
+"extern C" for a C++ compiler on non-Win32 systems. This macro apears at the
+start of every exported function that is part of the external API. It does not
+appear on functions that are "external" in the C sense, but which are internal
+to the library. */
+
+/* #define PCRE_DATA_SCOPE */
+
+/* Define the following macro to empty if the "const" keyword does not work. */
+
+#undef const
+
+/* Define the following macro to "unsigned" if <stddef.h> does not define
+size_t. */
+
+#undef size_t
+
+/* The following two definitions are mainly for the benefit of SunOS4, which
+does not have the strerror() or memmove() functions that should be present in
+all Standard C libraries. The macros HAVE_STRERROR and HAVE_MEMMOVE should
+normally be defined with the value 1 for other systems, but unfortunately we
+cannot make this the default because "configure" files generated by autoconf
+will only change 0 to 1; they won't change 1 to 0 if the functions are not
+found. */
+
+#define HAVE_STRERROR 1
+#define HAVE_MEMMOVE  1
+
+/* There are some non-Unix-like systems that don't even have bcopy(). If this
+macro is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of
+HAVE_BCOPY is not relevant. */
+
+#define HAVE_BCOPY    0
+
+/* The value of NEWLINE determines the newline character. The default is to
+leave it up to the compiler, but some sites want to force a particular value.
+On Unix-like systems, "configure" can be used to override this default. */
+
+#ifndef NEWLINE
+#define NEWLINE '\n'
+#endif
+
+/* The value of LINK_SIZE determines the number of bytes used to store links as
+offsets within the compiled regex. The default is 2, which allows for compiled
+patterns up to 64K long. This covers the vast majority of cases. However, PCRE
+can also be compiled to use 3 or 4 bytes instead. This allows for longer
+patterns in extreme cases. On systems that support it, "configure" can be used
+to override this default. */
+
+#ifndef LINK_SIZE
+#define LINK_SIZE   2
+#endif
+
+/* When calling PCRE via the POSIX interface, additional working storage is
+required for holding the pointers to capturing substrings because PCRE requires
+three integers per substring, whereas the POSIX interface provides only two. If
+the number of expected substrings is small, the wrapper function uses space on
+the stack, because this is faster than using malloc() for each call. The
+threshold above which the stack is no longer used is defined by POSIX_MALLOC_
+THRESHOLD. On systems that support it, "configure" can be used to override this
+default. */
+
+#ifndef POSIX_MALLOC_THRESHOLD
+#define POSIX_MALLOC_THRESHOLD 10
+#endif
+
+/* PCRE uses recursive function calls to handle backtracking while matching.
+This can sometimes be a problem on systems that have stacks of limited size.
+Define NO_RECURSE to get a version that doesn't use recursion in the match()
+function; instead it creates its own stack by steam using pcre_recurse_malloc()
+to obtain memory from the heap. For more detail, see the comments and other
+stuff just above the match() function. On systems that support it, "configure"
+can be used to set this in the Makefile (use --disable-stack-for-recursion). */
+
+/* #define NO_RECURSE */
+
+/* The value of MATCH_LIMIT determines the default number of times the internal
+match() function can be called during a single execution of pcre_exec(). There
+is a runtime interface for setting a different limit. The limit exists in order
+to catch runaway regular expressions that take for ever to determine that they
+do not match. The default is set very large so that it does not accidentally
+catch legitimate cases. On systems that support it, "configure" can be used to
+override this default default. */
+
+#ifndef MATCH_LIMIT
+#define MATCH_LIMIT 10000000
+#endif
+
+/* The above limit applies to all calls of match(), whether or not they
+increase the recursion depth. In some environments it is desirable to limit the
+depth of recursive calls of match() more strictly, in order to restrict the
+maximum amount of stack (or heap, if NO_RECURSE is defined) that is used. The
+value of MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
+have any useful effect, it must be less than the value of MATCH_LIMIT. There is
+a runtime method for setting a different limit. On systems that support it,
+"configure" can be used to override this default default. */
+
+#ifndef MATCH_LIMIT_RECURSION
+#define MATCH_LIMIT_RECURSION MATCH_LIMIT
+#endif
+
+/* These three limits are parameterized just in case anybody ever wants to
+change them. Care must be taken if they are increased, because they guard
+against integer overflow caused by enormously large patterns. */
+
+#ifndef MAX_NAME_SIZE
+#define MAX_NAME_SIZE 32
+#endif
+
+#ifndef MAX_NAME_COUNT
+#define MAX_NAME_COUNT 10000
+#endif
+
+#ifndef MAX_DUPLENGTH
+#define MAX_DUPLENGTH 30000
+#endif
+
+/* End */
diff -urN pcre-7.0/pcre.rc pcre-7.0-mod/pcre.rc
--- pcre-7.0/pcre.rc	1970-01-01 01:00:00.000000000 +0100
+++ pcre-7.0-mod/pcre.rc	2007-02-01 14:06:51.780058000 +0100
@@ -0,0 +1,31 @@
+#define WINDOWS_LEAN_AND_MEAN
+#include <windows.h>
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION	7, 0, 0, 0
+PRODUCTVERSION	7, 0, 0, 0
+FILEFLAGSMASK	0x3fL
+FILEFLAGS 0
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_APP
+FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+	BLOCK	"VarFileInfo"
+	BEGIN
+		VALUE	"Translation",	0x409,	1200
+	END
+	BLOCK	"StringFileInfo"
+	BEGIN
+		BLOCK "040904b0"
+		BEGIN
+			VALUE	"CompanyName",	"Philip Hazel <ph10@cam.ac.uk>\0"
+			VALUE	"FileDescription",	"Perl Compatible Regular Expression Library\0"
+			VALUE	"FileVersion",	"7.0\0"
+			VALUE	"InternalName",	"Pcre\0"
+			VALUE	"LegalCopyright",	"Copyright 1997-2006 University of Cambridge\0"
+			VALUE	"OriginalFilename",	"pcre70.dll\0"
+			VALUE	"ProductName",	"Pcre\0"
+			VALUE	"ProductVersion",	"7.0\0"
+		END
+	END
+END
