If my code contains the following regexp,

            const boost::tregex non_printables(__T("[^\0x21-\0x7E]+"));

 

The program throws the following dialog box on initialization.  The stack trace follows. 

 

 

Please forward to someone who cares :-)

 

The following regexp, works as expected

            const boost::tregex non_printables(__T("[^!-~]+"));

 

                                                                        --Brad              

 

            ntdll.dll!_KiFastSystemCallRet@0()        

            ntdll.dll!_ZwWaitForMultipleObjects@20()  + 0xc bytes    

            kernel32.dll!_UnhandledExceptionFilter@4()  + 0x84b bytes         

            mscoree.dll!_abort()  + 0xeb bytes          

            mscoree.dll!terminate()  + 0x2a bytes     

            mscoree.dll!__CxxUnhandledExceptionFilter()  + 0x39 bytes        

            kernel32.dll!_UnhandledExceptionFilter@4()  + 0x149 bytes         

>          msvcr80d.dll!_XcptFilter(unsigned long xcptnum=3765269347, _EXCEPTION_POINTERS * pxcptinfoptrs=0x0007da0c)  Line 237 + 0xa bytes      C

            msvcr80d.dll!__CppXcptFilter(unsigned long xcptnum=3765269347, _EXCEPTION_POINTERS * pxcptinfoptrs=0x0007da0c)  Line 147 + 0xd bytes C

            mathdlld.dll!__DllMainCRTStartup(void * hDllHandle=0x01010000, unsigned long dwReason=1, void * lpreserved=0x00000000)  Line 517 + 0x17 bytes   C

            msvcr80d.dll!@_EH4_CallFilterFunc@8()  + 0x12 bytes    Asm

            mathdlld.dll!_except_handler4(_EXCEPTION_RECORD * ExceptionRecord=0x0007db20, _EXCEPTION_REGISTRATION_RECORD * EstablisherFrame=0x0007e15c, _CONTEXT * ContextRecord=0x0007db40, void * DispatcherContext=0x0007daf4)  + 0x22 bytes     C

            ntdll.dll!ExecuteHandler2@20()  + 0x26 bytes      

            ntdll.dll!ExecuteHandler@20()  + 0x24 bytes       

            ntdll.dll!_KiUserExceptionDispatcher@8()  + 0xe bytes    

            kernel32.dll!_RaiseException@16()  + 0x52 bytes

            msvcr80d.dll!_CxxThrowException(void * pExceptionObject=0x0007deb0, const _s__ThrowInfo * pThrowInfo=0x00b98b08)  Line 166            C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::throw_exception<boost::regex_error>(const boost::regex_error & e={...})  Line 40         C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::regex_error::raise()  Line 74 + 0x9 bytes C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::re_detail::basic_regex_parser<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::fail(boost::regex_constants::error_type error_code=error_paren, int position=2)  Line 161 C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::re_detail::basic_regex_parser<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::parse(const wchar_t * p1=0x01735a34, const wchar_t * p2=0x01735a38, unsigned int flags=0)  Line 137  C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::re_detail::basic_regex_implementation<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::assign(const wchar_t * arg_first=0x01735a34, const wchar_t * arg_last=0x01735a38, unsigned int f=0)  Line 96 C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::basic_regex<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::do_assign(const wchar_t * p1=0x01735a34, const wchar_t * p2=0x01735a38, unsigned int f=0)  Line 524      C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::basic_regex<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::assign(const wchar_t * p1=0x01735a34, const wchar_t * p2=0x01735a38, unsigned int f=0)  Line 255      C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::basic_regex<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::assign(const wchar_t * p=0x01735a34, unsigned int f=0)  Line 240        C++

            boost_regex-vc80-mt-gd-1_33_1.dll!boost::basic_regex<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >::basic_regex<wchar_t,boost::regex_traits<wchar_t,boost::w32_regex_traits<wchar_t> > >(const wchar_t * p=0x01735a34, unsigned int f=0)  Line 209          C++

            mathdlld.dll!`dynamic initializer for 'non_printables''()  Line 65 + 0x15 bytes C++

            msvcr80d.dll!_initterm(void (void)* * pfbegin=0x01701520, void (void)* * pfend=0x01702e5c)  Line 855 C

            mathdlld.dll!_CRT_INIT(void * hDllHandle=0x01010000, unsigned long dwReason=1, void * lpreserved=0x00000000)  Line 313 + 0xf bytes  C

            mathdlld.dll!__DllMainCRTStartup(void * hDllHandle=0x01010000, unsigned long dwReason=1, void * lpreserved=0x00000000)  Line 489 + 0x11 bytes   C

            mathdlld.dll!_DllMainCRTStartup(void * hDllHandle=0x01010000, unsigned long dwReason=1, void * lpreserved=0x00000000)  Line 459 + 0x11 bytes   C

            ntdll.dll!_LdrpCallInitRoutine@16()  + 0x14 bytes  

            ntdll.dll!_LdrpRunInitializeRoutines@4()  + 0x1c7 bytes    

            ntdll.dll!_LdrpLoadDll@24()  - 0x1b1 bytes           

            ntdll.dll!_LdrLoadDll@16()  + 0x110 bytes

            kernel32.dll!_LoadLibraryExW@12()  + 0xc8 bytes          

            regsvr32.exe!_wWinMain@16()  + 0x741 bytes    

            regsvr32.exe!_wWinMainCRTStartup()  + 0x198 bytes      

            kernel32.dll!_BaseProcessStart@4()  + 0x23 bytes