Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r58234 - in branches/release: boost/regex boost/regex/pending boost/regex/v4 libs/regex libs/regex/build libs/regex/doc libs/regex/doc/html libs/regex/doc/html/boost_regex libs/regex/doc/html/boost_regex/background_information libs/regex/doc/html/boost_regex/configuration libs/regex/doc/html/boost_regex/format libs/regex/doc/html/boost_regex/ref libs/regex/doc/html/boost_regex/ref/concepts libs/regex/doc/html/boost_regex/ref/deprecated_interfaces libs/regex/doc/html/boost_regex/ref/non_std_strings libs/regex/doc/html/boost_regex/ref/non_std_strings/icu libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings libs/regex/doc/html/boost_regex/ref/syntax_option_type libs/regex/doc/html/boost_regex/syntax libs/regex/doc/html/boost_regex/syntax/character_classes libs/regex/doc/html/boost_regex/syntax/collating_names libs/regex/example/snippets libs/regex/example/timer libs/regex/performance libs/regex/src libs/regex/test/c_compiler_checks libs/regex/test/concepts libs/regex/test/regress libs/regex/test/static_mutex
From: john_at_[hidden]
Date: 2009-12-08 07:42:46


Author: johnmaddock
Date: 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
New Revision: 58234
URL: http://svn.boost.org/trac/boost/changeset/58234

Log:
Merge bug fixes from Trunk - see history for full details.
Properties modified:
   branches/release/boost/regex/ (props changed)
   branches/release/libs/regex/ (props changed)
Text files modified:
   branches/release/boost/regex/concepts.hpp | 94 +++++++
   branches/release/boost/regex/config.hpp | 6
   branches/release/boost/regex/icu.hpp | 26 +-
   branches/release/boost/regex/pending/object_cache.hpp | 2
   branches/release/boost/regex/v4/basic_regex_creator.hpp | 6
   branches/release/boost/regex/v4/basic_regex_parser.hpp | 400 +++++++++++++++++++++++++-------
   branches/release/boost/regex/v4/cpp_regex_traits.hpp | 16
   branches/release/boost/regex/v4/cregex.hpp | 43 +-
   branches/release/boost/regex/v4/error_type.hpp | 13
   branches/release/boost/regex/v4/match_flags.hpp | 90 +++---
   branches/release/boost/regex/v4/match_results.hpp | 194 ++++++++++++---
   branches/release/boost/regex/v4/perl_matcher_non_recursive.hpp | 4
   branches/release/boost/regex/v4/perl_matcher_recursive.hpp | 2
   branches/release/boost/regex/v4/regex_format.hpp | 485 ++++++++++++++++++++++++++++++++-------
   branches/release/boost/regex/v4/regex_replace.hpp | 33 --
   branches/release/boost/regex/v4/regex_traits_defaults.hpp | 2
   branches/release/boost/regex/v4/u32regex_iterator.hpp | 2
   branches/release/boost/regex/v4/u32regex_token_iterator.hpp | 6
   branches/release/libs/regex/build/Jamfile.v2 | 10
   branches/release/libs/regex/doc/history.qbk | 21 +
   branches/release/libs/regex/doc/html/boost_regex/background_information.html | 4
   branches/release/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html | 8
   branches/release/libs/regex/doc/html/boost_regex/background_information/examples.html | 10
   branches/release/libs/regex/doc/html/boost_regex/background_information/faq.html | 4
   branches/release/libs/regex/doc/html/boost_regex/background_information/futher.html | 4
   branches/release/libs/regex/doc/html/boost_regex/background_information/headers.html | 4
   branches/release/libs/regex/doc/html/boost_regex/background_information/history.html | 52 +++
   branches/release/libs/regex/doc/html/boost_regex/background_information/locale.html | 72 ++--
   branches/release/libs/regex/doc/html/boost_regex/background_information/performance.html | 4
   branches/release/libs/regex/doc/html/boost_regex/background_information/redist.html | 4
   branches/release/libs/regex/doc/html/boost_regex/background_information/standards.html | 18
   branches/release/libs/regex/doc/html/boost_regex/background_information/thread_safety.html | 4
   branches/release/libs/regex/doc/html/boost_regex/captures.html | 10
   branches/release/libs/regex/doc/html/boost_regex/configuration.html | 4
   branches/release/libs/regex/doc/html/boost_regex/configuration/algorithm.html | 4
   branches/release/libs/regex/doc/html/boost_regex/configuration/compiler.html | 4
   branches/release/libs/regex/doc/html/boost_regex/configuration/linkage.html | 4
   branches/release/libs/regex/doc/html/boost_regex/configuration/locale.html | 4
   branches/release/libs/regex/doc/html/boost_regex/configuration/tuning.html | 4
   branches/release/libs/regex/doc/html/boost_regex/format.html | 4
   branches/release/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html | 12
   branches/release/libs/regex/doc/html/boost_regex/format/perl_format.html | 4
   branches/release/libs/regex/doc/html/boost_regex/format/sed_format.html | 4
   branches/release/libs/regex/doc/html/boost_regex/install.html | 20
   branches/release/libs/regex/doc/html/boost_regex/introduction_and_overview.html | 4
   branches/release/libs/regex/doc/html/boost_regex/partial_matches.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/bad_expression.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/basic_regex.html | 22
   branches/release/libs/regex/doc/html/boost_regex/ref/concepts.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html | 32 -
   branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/error_type.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/match_flag_type.html | 6
   branches/release/libs/regex/doc/html/boost_regex/ref/match_results.html | 121 ++++++++-
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html | 10
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html | 12
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html | 14
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/posix.html | 12
   branches/release/libs/regex/doc/html/boost_regex/ref/regex_iterator.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/regex_match.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/regex_replace.html | 59 +++-
   branches/release/libs/regex/doc/html/boost_regex/ref/regex_search.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html | 8
   branches/release/libs/regex/doc/html/boost_regex/ref/regex_traits.html | 6
   branches/release/libs/regex/doc/html/boost_regex/ref/sub_match.html | 12
   branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html | 4
   branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/basic_extended.html | 72 ++--
   branches/release/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html | 50 ++--
   branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html | 4
   branches/release/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html | 102 ++++----
   branches/release/libs/regex/doc/html/boost_regex/unicode.html | 8
   branches/release/libs/regex/doc/html/index.html | 8
   branches/release/libs/regex/doc/match_result.qbk | 65 ++++
   branches/release/libs/regex/doc/regex_format.qbk | 21 -
   branches/release/libs/regex/doc/regex_replace.qbk | 41 ++
   branches/release/libs/regex/example/snippets/icu_example.cpp | 18
   branches/release/libs/regex/example/snippets/regex_grep_example_1.cpp | 2
   branches/release/libs/regex/example/snippets/regex_match_example.cpp | 4
   branches/release/libs/regex/example/snippets/regex_merge_example.cpp | 4
   branches/release/libs/regex/example/snippets/regex_replace_example.cpp | 4
   branches/release/libs/regex/example/snippets/regex_split_example_1.cpp | 4
   branches/release/libs/regex/example/snippets/regex_token_iterator_eg_1.cpp | 4
   branches/release/libs/regex/example/timer/regex_timer.cpp | 30 +-
   branches/release/libs/regex/performance/Jamfile.v2 | 1
   branches/release/libs/regex/src/cpp_regex_traits.cpp | 2
   branches/release/libs/regex/src/cregex.cpp | 6
   branches/release/libs/regex/src/fileiter.cpp | 21 +
   branches/release/libs/regex/src/posix_api.cpp | 1
   branches/release/libs/regex/src/regex_traits_defaults.cpp | 49 ++-
   branches/release/libs/regex/src/static_mutex.cpp | 2
   branches/release/libs/regex/src/usinstances.cpp | 3
   branches/release/libs/regex/src/wide_posix_api.cpp | 1
   branches/release/libs/regex/test/c_compiler_checks/posix_api_check.cpp | 8
   branches/release/libs/regex/test/c_compiler_checks/wide_posix_api_check.cpp | 12
   branches/release/libs/regex/test/concepts/icu_concept_check.cpp | 9
   branches/release/libs/regex/test/regress/test_deprecated.cpp | 4
   branches/release/libs/regex/test/regress/test_escapes.cpp | 2
   branches/release/libs/regex/test/regress/test_icu.cpp | 2
   branches/release/libs/regex/test/regress/test_not_regex.hpp | 8
   branches/release/libs/regex/test/regress/test_regex_replace.hpp | 8
   branches/release/libs/regex/test/regress/test_regex_search.hpp | 28 +
   branches/release/libs/regex/test/regress/test_simple_repeats.cpp | 1
   branches/release/libs/regex/test/static_mutex/static_mutex_test.cpp | 2
   133 files changed, 1897 insertions(+), 937 deletions(-)

Modified: branches/release/boost/regex/concepts.hpp
==============================================================================
--- branches/release/boost/regex/concepts.hpp (original)
+++ branches/release/boost/regex/concepts.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -747,6 +747,46 @@
 };
 
 #ifndef BOOST_REGEX_TEST_STD
+
+template <class M>
+struct functor1
+{
+ typedef typename M::char_type char_type;
+ const char_type* operator()(const M&)
+ {
+ static const char_type c = static_cast<char_type>(0);
+ return &c;
+ }
+};
+template <class M>
+struct functor1b
+{
+ typedef typename M::char_type char_type;
+ std::vector<char_type> operator()(const M&)
+ {
+ static const std::vector<char_type> c;
+ return c;
+ }
+};
+template <class M>
+struct functor2
+{
+ template <class O>
+ O operator()(const M& /*m*/, O i)
+ {
+ return i;
+ }
+};
+template <class M>
+struct functor3
+{
+ template <class O>
+ O operator()(const M& /*m*/, O i, regex_constants::match_flag_type)
+ {
+ return i;
+ }
+};
+
 //
 // BoostRegexConcept:
 // Test every interface in the Boost implementation:
@@ -764,6 +804,7 @@
    typedef std::basic_string<value_type> string_type;
    typedef typename Regex::const_iterator const_iterator;
    typedef bidirectional_iterator_archetype<value_type> BidiIterator;
+ typedef output_iterator_archetype<value_type> OutputIterator;
    typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;
    typedef global_regex_namespace::match_results<BidiIterator> match_results_type;
 
@@ -884,6 +925,58 @@
       m_stream << m_sub;
       m_stream << m_cresults;
 #endif
+ //
+ // Extended formatting with a functor:
+ //
+ regex_constants::match_flag_type f = regex_constants::match_default;
+ OutputIterator out = static_object<OutputIterator>::get();
+ functor3<match_results_type> func3;
+ out = regex_format(out, m_cresults, func3, f);
+ out = regex_format(out, m_cresults, func3);
+ functor2<match_results_type> func2;
+ out = regex_format(out, m_cresults, func2, f);
+ out = regex_format(out, m_cresults, func2);
+ functor1<match_results_type> func1;
+ out = regex_format(out, m_cresults, func1, f);
+ out = regex_format(out, m_cresults, func1);
+
+ m_string += regex_format(m_cresults, func3, f);
+ m_string += regex_format(m_cresults, func3);
+ m_string += regex_format(m_cresults, func2, f);
+ m_string += regex_format(m_cresults, func2);
+ m_string += regex_format(m_cresults, func1, f);
+ m_string += regex_format(m_cresults, func1);
+
+ out = m_cresults.format(out, func3, f);
+ out = m_cresults.format(out, func3);
+ out = m_cresults.format(out, func2, f);
+ out = m_cresults.format(out, func2);
+ out = m_cresults.format(out, func1, f);
+ out = m_cresults.format(out, func1);
+
+ m_string += m_cresults.format(func3, f);
+ m_string += m_cresults.format(func3);
+ m_string += m_cresults.format(func2, f);
+ m_string += m_cresults.format(func2);
+ m_string += m_cresults.format(func1, f);
+ m_string += m_cresults.format(func1);
+
+ out = regex_replace(out, m_in, m_in, ce, func3, f);
+ out = regex_replace(out, m_in, m_in, ce, func3);
+ out = regex_replace(out, m_in, m_in, ce, func2, f);
+ out = regex_replace(out, m_in, m_in, ce, func2);
+ out = regex_replace(out, m_in, m_in, ce, func1, f);
+ out = regex_replace(out, m_in, m_in, ce, func1);
+
+ functor3<match_results<typename string_type::const_iterator> > func3s;
+ functor2<match_results<typename string_type::const_iterator> > func2s;
+ functor1<match_results<typename string_type::const_iterator> > func1s;
+ m_string += regex_replace(m_string, ce, func3s, f);
+ m_string += regex_replace(m_string, ce, func3s);
+ m_string += regex_replace(m_string, ce, func2s, f);
+ m_string += regex_replace(m_string, ce, func2s);
+ m_string += regex_replace(m_string, ce, func1s, f);
+ m_string += regex_replace(m_string, ce, func1s);
    }
 
    std::basic_ostream<value_type> m_stream;
@@ -893,6 +986,7 @@
    const value_type m_char;
    match_results_type m_results;
    const match_results_type m_cresults;
+ BidiIterator m_in;
 
    BoostRegexConcept();
    BoostRegexConcept(const BoostRegexConcept&);

Modified: branches/release/boost/regex/config.hpp
==============================================================================
--- branches/release/boost/regex/config.hpp (original)
+++ branches/release/boost/regex/config.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -92,6 +92,12 @@
 #if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
 # define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
 #endif
+/*
+ * Shared regex lib will crash without this, frankly it looks a lot like a gcc bug:
+ */
+#if defined(__MINGW32__)
+# define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
+#endif
 
 /*
  * If there isn't good enough wide character support then there will

Modified: branches/release/boost/regex/icu.hpp
==============================================================================
--- branches/release/boost/regex/icu.hpp (original)
+++ branches/release/boost/regex/icu.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -376,7 +376,7 @@
 //
 // Construction from ICU string type:
 //
-inline u32regex make_u32regex(const UnicodeString& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
+inline u32regex make_u32regex(const U_NAMESPACE_QUALIFIER UnicodeString& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)
 {
    return re_detail::do_make_u32regex(s.getBuffer(), s.getBuffer() + s.length(), opt, static_cast<boost::mpl::int_<2> const*>(0));
 }
@@ -498,7 +498,7 @@
    return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
 }
 #endif
-inline bool u32regex_match(const UnicodeString& s,
+inline bool u32regex_match(const U_NAMESPACE_QUALIFIER UnicodeString& s,
                         match_results<const UChar*>& m,
                         const u32regex& e,
                         match_flag_type flags = match_default)
@@ -562,7 +562,7 @@
    return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
 }
 #endif
-inline bool u32regex_match(const UnicodeString& s,
+inline bool u32regex_match(const U_NAMESPACE_QUALIFIER UnicodeString& s,
                         const u32regex& e,
                         match_flag_type flags = match_default)
 {
@@ -683,7 +683,7 @@
    return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
 }
 #endif
-inline bool u32regex_search(const UnicodeString& s,
+inline bool u32regex_search(const U_NAMESPACE_QUALIFIER UnicodeString& s,
                         match_results<const UChar*>& m,
                         const u32regex& e,
                         match_flag_type flags = match_default)
@@ -744,7 +744,7 @@
    return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
 }
 #endif
-inline bool u32regex_search(const UnicodeString& s,
+inline bool u32regex_search(const U_NAMESPACE_QUALIFIER UnicodeString& s,
                         const u32regex& e,
                         match_flag_type flags = match_default)
 {
@@ -921,7 +921,7 @@
                          Iterator first,
                          Iterator last,
                          const u32regex& e,
- const UnicodeString& fmt,
+ const U_NAMESPACE_QUALIFIER UnicodeString& fmt,
                          match_flag_type flags = match_default)
 {
    return re_detail::extract_output_base
@@ -966,9 +966,9 @@
 
 class unicode_string_out_iterator
 {
- UnicodeString* out;
+ U_NAMESPACE_QUALIFIER UnicodeString* out;
 public:
- unicode_string_out_iterator(UnicodeString& s) : out(&s) {}
+ unicode_string_out_iterator(U_NAMESPACE_QUALIFIER UnicodeString& s) : out(&s) {}
    unicode_string_out_iterator& operator++() { return *this; }
    unicode_string_out_iterator& operator++(int) { return *this; }
    unicode_string_out_iterator& operator*() { return *this; }
@@ -986,23 +986,23 @@
 
 }
 
-inline UnicodeString u32regex_replace(const UnicodeString& s,
+inline U_NAMESPACE_QUALIFIER UnicodeString u32regex_replace(const U_NAMESPACE_QUALIFIER UnicodeString& s,
                          const u32regex& e,
                          const UChar* fmt,
                          match_flag_type flags = match_default)
 {
- UnicodeString result;
+ U_NAMESPACE_QUALIFIER UnicodeString result;
    re_detail::unicode_string_out_iterator i(result);
    u32regex_replace(i, s.getBuffer(), s.getBuffer()+s.length(), e, fmt, flags);
    return result;
 }
 
-inline UnicodeString u32regex_replace(const UnicodeString& s,
+inline U_NAMESPACE_QUALIFIER UnicodeString u32regex_replace(const U_NAMESPACE_QUALIFIER UnicodeString& s,
                          const u32regex& e,
- const UnicodeString& fmt,
+ const U_NAMESPACE_QUALIFIER UnicodeString& fmt,
                          match_flag_type flags = match_default)
 {
- UnicodeString result;
+ U_NAMESPACE_QUALIFIER UnicodeString result;
    re_detail::unicode_string_out_iterator i(result);
    re_detail::do_regex_replace(
          re_detail::make_utf32_out(i, static_cast<mpl::int_<2> const*>(0)),

Modified: branches/release/boost/regex/pending/object_cache.hpp
==============================================================================
--- branches/release/boost/regex/pending/object_cache.hpp (original)
+++ branches/release/boost/regex/pending/object_cache.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -73,7 +73,9 @@
    // for now just throw, but we should never really get here...
    //
    ::boost::throw_exception(std::runtime_error("Error in thread safety code: could not acquire a lock"));
+#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
    return boost::shared_ptr<Object>();
+#endif
 #else
    return do_get(k, max_cache_size);
 #endif

Modified: branches/release/boost/regex/v4/basic_regex_creator.hpp
==============================================================================
--- branches/release/boost/regex/v4/basic_regex_creator.hpp (original)
+++ branches/release/boost/regex/v4/basic_regex_creator.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -787,7 +787,7 @@
                      //
                      if(0 == (this->flags() & regex_constants::no_except))
                      {
- std::string message = this->m_pdata->m_ptraits->error_string(boost::regex_constants::error_bad_pattern);
+ std::string message = "Encountered a forward reference to a marked sub-expression that does not exist.";
                         boost::regex_error e(message, boost::regex_constants::error_bad_pattern, 0);
                         e.raise();
                      }
@@ -828,7 +828,7 @@
                //
                if(0 == (this->flags() & regex_constants::no_except))
                {
- std::string message = this->m_pdata->m_ptraits->error_string(boost::regex_constants::error_bad_pattern);
+ std::string message = "Encountered a forward reference to a recursive sub-expression that does not exist.";
                   boost::regex_error e(message, boost::regex_constants::error_bad_pattern, 0);
                   e.raise();
                }
@@ -893,7 +893,7 @@
             //
             if(0 == (this->flags() & regex_constants::no_except))
             {
- std::string message = this->m_pdata->m_ptraits->error_string(boost::regex_constants::error_bad_pattern);
+ std::string message = "Invalid lookbehind assertion encountered in the regular expression.";
                boost::regex_error e(message, boost::regex_constants::error_bad_pattern, 0);
                e.raise();
             }

Modified: branches/release/boost/regex/v4/basic_regex_parser.hpp
==============================================================================
--- branches/release/boost/regex/v4/basic_regex_parser.hpp (original)
+++ branches/release/boost/regex/v4/basic_regex_parser.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -45,6 +45,11 @@
    basic_regex_parser(regex_data<charT, traits>* data);
    void parse(const charT* p1, const charT* p2, unsigned flags);
    void fail(regex_constants::error_type error_code, std::ptrdiff_t position);
+ void fail(regex_constants::error_type error_code, std::ptrdiff_t position, std::string message, std::ptrdiff_t start_pos);
+ void fail(regex_constants::error_type error_code, std::ptrdiff_t position, const std::string& message)
+ {
+ fail(error_code, position, message, position);
+ }
 
    bool parse_all();
    bool parse_basic();
@@ -141,6 +146,11 @@
    case regbase::literal:
       m_parser_proc = &basic_regex_parser<charT, traits>::parse_literal;
       break;
+ default:
+ // Ooops, someone has managed to set more than one of the main option flags,
+ // so this must be an error:
+ fail(regex_constants::error_unknown, 0, "An invalid combination of regular expression syntax flags was used.");
+ return;
    }
 
    // parse all our characters:
@@ -155,7 +165,7 @@
    // have had an unexpected ')' :
    if(!result)
    {
- fail(regex_constants::error_paren, ::boost::re_detail::distance(m_base, m_position));
+ fail(regex_constants::error_paren, ::boost::re_detail::distance(m_base, m_position), "Found a closing ) with no corresponding openening parenthesis.");
       return;
    }
    // if an error has been set then give up now:
@@ -169,12 +179,39 @@
 template <class charT, class traits>
 void basic_regex_parser<charT, traits>::fail(regex_constants::error_type error_code, std::ptrdiff_t position)
 {
+ // get the error message:
+ std::string message = this->m_pdata->m_ptraits->error_string(error_code);
+ fail(error_code, position, message);
+}
+
+template <class charT, class traits>
+void basic_regex_parser<charT, traits>::fail(regex_constants::error_type error_code, std::ptrdiff_t position, std::string message, std::ptrdiff_t start_pos)
+{
    if(0 == this->m_pdata->m_status) // update the error code if not already set
       this->m_pdata->m_status = error_code;
    m_position = m_end; // don't bother parsing anything else
- // get the error message:
- std::string message = this->m_pdata->m_ptraits->error_string(error_code);
- // and raise the exception, this will do nothing if exceptions are disabled:
+
+ //
+ // Augment error message with the regular expression text:
+ //
+ if(start_pos == position)
+ start_pos = (std::max)(static_cast<std::ptrdiff_t>(0), position - 10);
+ std::ptrdiff_t end_pos = (std::min)(position + 10, m_end - m_base);
+ if(error_code != regex_constants::error_empty)
+ {
+ if((start_pos != 0) || (end_pos != (m_end - m_base)))
+ message += " The error occured while parsing the regular expression fragment: '";
+ else
+ message += " The error occured while parsing the regular expression: '";
+ if(start_pos != end_pos)
+ {
+ message += std::string(m_base + start_pos, m_base + position);
+ message += ">>>HERE>>>";
+ message += std::string(m_base + position, m_base + end_pos);
+ }
+ message += "'.";
+ }
+
 #ifndef BOOST_NO_EXCEPTIONS
    if(0 == (this->flags() & regex_constants::no_except))
    {
@@ -282,7 +319,7 @@
    case regex_constants::syntax_star:
       if(m_position == this->m_base)
       {
- fail(regex_constants::error_badrepeat, 0);
+ fail(regex_constants::error_badrepeat, 0, "The repeat operator \"*\" cannot start a regular expression.");
          return false;
       }
       ++m_position;
@@ -290,7 +327,7 @@
    case regex_constants::syntax_question:
       if(m_position == this->m_base)
       {
- fail(regex_constants::error_badrepeat, 0);
+ fail(regex_constants::error_badrepeat, 0, "The repeat operator \"?\" cannot start a regular expression.");
          return false;
       }
       ++m_position;
@@ -298,7 +335,7 @@
    case regex_constants::syntax_plus:
       if(m_position == this->m_base)
       {
- fail(regex_constants::error_badrepeat, 0);
+ fail(regex_constants::error_badrepeat, 0, "The repeat operator \"+\" cannot start a regular expression.");
          return false;
       }
       ++m_position;
@@ -307,7 +344,7 @@
       ++m_position;
       return parse_repeat_range(false);
    case regex_constants::syntax_close_brace:
- fail(regex_constants::error_brace, this->m_position - this->m_end);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, "Found a closing repetition operator } with no corresponding {.");
       return false;
    case regex_constants::syntax_or:
       return parse_alt();
@@ -512,7 +549,7 @@
    case regex_constants::syntax_close_brace:
       if(this->flags() & regbase::no_intervals)
          return parse_literal();
- fail(regex_constants::error_brace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, "Found a closing repetition operator } with no corresponding {.");
       return false;
    case regex_constants::syntax_or:
       if(this->flags() & regbase::bk_vbar)
@@ -607,7 +644,7 @@
          case 'c':
          case 'C':
             // not supported yet:
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, "The \\c and \\C escape sequences are not supported by POSIX basic regular expressions: try the Perl syntax instead.");
             return false;
          default:
             break;
@@ -705,7 +742,7 @@
          char_class_type m;
          if(m_position == m_end)
          {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, "Incomplete property escape found.");
             return false;
          }
          // maybe have \p{ddd}
@@ -717,7 +754,7 @@
                ++m_position;
             if(m_position == m_end)
             {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, "Closing } missing from property escape sequence.");
                return false;
             }
             m = this->m_traits.lookup_classname(++base, m_position++);
@@ -740,7 +777,7 @@
             }
             return true;
          }
- fail(regex_constants::error_ctype, m_position - m_base);
+ fail(regex_constants::error_ctype, m_position - m_base, "Escape sequence was neither a valid property nor a valid character class name.");
          return false;
       }
    case regex_constants::escape_type_reset_start_mark:
@@ -776,9 +813,10 @@
       {
          bool have_brace = false;
          bool negative = false;
+ static const char* incomplete_message = "Incomplete \\g escape found.";
          if(++m_position == m_end)
          {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
             return false;
          }
          // maybe have \g{ddd}
@@ -786,7 +824,7 @@
          {
             if(++m_position == m_end)
             {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
                return false;
             }
             have_brace = true;
@@ -794,7 +832,7 @@
          negative = (*m_position == static_cast<charT>('-'));
          if((negative) && (++m_position == m_end))
          {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
             return false;
          }
          const charT* pc = m_position;
@@ -819,7 +857,7 @@
          }
          else
          {
- fail(regex_constants::error_backref, m_position - m_end);
+ fail(regex_constants::error_backref, m_position - m_base);
             return false;
          }
          m_position = pc;
@@ -827,7 +865,7 @@
          {
             if((m_position == m_end) || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
             {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
                return false;
             }
             ++m_position;
@@ -894,7 +932,7 @@
    }
    if(0 == this->m_last_state)
    {
- fail(regex_constants::error_badrepeat, ::boost::re_detail::distance(m_base, m_position));
+ fail(regex_constants::error_badrepeat, ::boost::re_detail::distance(m_base, m_position), "Nothing to repeat.");
       return false;
    }
    if(this->m_last_state->type == syntax_element_endmark)
@@ -968,7 +1006,7 @@
       re_brace* pb = static_cast<re_brace*>(this->insert_state(insert_point, syntax_element_startmark, sizeof(re_brace)));
       pb->index = -3;
       pb->icase = this->flags() & regbase::icase;
- re_jump* jmp = static_cast<re_jump*>(this->insert_state(insert_point + sizeof(re_brace), syntax_element_jump, sizeof(re_jump)));
+ jmp = static_cast<re_jump*>(this->insert_state(insert_point + sizeof(re_brace), syntax_element_jump, sizeof(re_jump)));
       this->m_pdata->m_data.align();
       jmp->alt.i = this->m_pdata->m_data.size() - this->getoffset(jmp);
       pb = static_cast<re_brace*>(this->append_state(syntax_element_endmark, sizeof(re_brace)));
@@ -981,6 +1019,7 @@
 template <class charT, class traits>
 bool basic_regex_parser<charT, traits>::parse_repeat_range(bool isbasic)
 {
+ static const char* incomplete_message = "Missing } in quantified repetition.";
    //
    // parse a repeat-range:
    //
@@ -992,7 +1031,7 @@
    // fail if at end:
    if(this->m_position == this->m_end)
    {
- fail(regex_constants::error_brace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
       return false;
    }
    // get min:
@@ -1007,7 +1046,7 @@
    }
    else if(this->m_position == this->m_end)
    {
- fail(regex_constants::error_brace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
       return false;
    }
    min = v;
@@ -1021,7 +1060,7 @@
          ++m_position;
       if(this->m_position == this->m_end)
       {
- fail(regex_constants::error_brace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
          return false;
       }
       // get the value if any:
@@ -1039,7 +1078,7 @@
    // OK now check trailing }:
    if(this->m_position == this->m_end)
    {
- fail(regex_constants::error_brace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
       return false;
    }
    if(isbasic)
@@ -1049,13 +1088,13 @@
          ++m_position;
          if(this->m_position == this->m_end)
          {
- fail(regex_constants::error_brace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
             return false;
          }
       }
       else
       {
- fail(regex_constants::error_badbrace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
          return false;
       }
    }
@@ -1063,7 +1102,7 @@
       ++m_position;
    else
    {
- fail(regex_constants::error_badbrace, this->m_position - this->m_base);
+ fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
       return false;
    }
    //
@@ -1071,7 +1110,11 @@
    //
    if(min > max)
    {
- fail(regex_constants::error_badbrace, this->m_position - this->m_base);
+ // Backtrack to error location:
+ m_position -= 2;
+ while(this->m_traits.isctype(*m_position, this->m_word_mask)) --m_position;
+ ++m_position;
+ fail(regex_constants::error_badbrace, m_position - m_base);
       return false;
    }
    return parse_repeat(min, max);
@@ -1094,7 +1137,7 @@
         )
       )
    {
- fail(regex_constants::error_empty, this->m_position - this->m_base);
+ fail(regex_constants::error_empty, this->m_position - this->m_base, "A regular expression can start with the alternation operator |.");
       return false;
    }
    //
@@ -1146,10 +1189,11 @@
 template <class charT, class traits>
 bool basic_regex_parser<charT, traits>::parse_set()
 {
+ static const char* incomplete_message = "Character set declaration starting with [ terminated prematurely - either no ] was found or the set had no content.";
    ++m_position;
    if(m_position == m_end)
    {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
       return false;
    }
    basic_char_set<charT, traits> char_set;
@@ -1182,7 +1226,7 @@
             ++m_position;
             if(0 == this->append_set(char_set))
             {
- fail(regex_constants::error_range, m_position - m_base);
+ fail(regex_constants::error_ctype, m_position - m_base);
                return false;
             }
          }
@@ -1237,6 +1281,7 @@
 template <class charT, class traits>
 bool basic_regex_parser<charT, traits>::parse_inner_set(basic_char_set<charT, traits>& char_set)
 {
+ static const char* incomplete_message = "Character class declaration starting with [ terminated prematurely - either no ] was found or the set had no content.";
    //
    // we have either a character class [:name:]
    // a collating element [.name.]
@@ -1244,7 +1289,7 @@
    //
    if(m_end == ++m_position)
    {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
       return false;
    }
    switch(this->m_traits.syntax_type(*m_position))
@@ -1269,14 +1314,14 @@
       // skip the ':'
       if(m_end == ++m_position)
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       const charT* name_first = m_position;
       // skip at least one character, then find the matching ':]'
       if(m_end == ++m_position)
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       while((m_position != m_end)
@@ -1285,13 +1330,13 @@
       const charT* name_last = m_position;
       if(m_end == m_position)
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       if((m_end == ++m_position)
          || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_set))
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       //
@@ -1346,14 +1391,14 @@
       // skip the '='
       if(m_end == ++m_position)
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       const charT* name_first = m_position;
       // skip at least one character, then find the matching '=]'
       if(m_end == ++m_position)
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       while((m_position != m_end)
@@ -1362,13 +1407,13 @@
       const charT* name_last = m_position;
       if(m_end == m_position)
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       if((m_end == ++m_position)
          || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_set))
       {
- fail(regex_constants::error_brack, m_position - m_base);
+ fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
          return false;
       }
       string_type m = this->m_traits.lookup_collatename(name_first, name_last);
@@ -1558,7 +1603,7 @@
    charT result(0);
    if(m_position == m_end)
    {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, "Escape sequence terminated prematurely.");
       return false;
    }
    switch(this->m_traits.escape_syntax_type(*m_position))
@@ -1591,24 +1636,22 @@
       ++m_position;
       if(m_position == m_end)
       {
- fail(regex_constants::error_escape, m_position - m_base);
- return result;
- }
- /*
- if((*m_position < charT('@'))
- || (*m_position > charT(125)) )
- {
- fail(regex_constants::error_escape, m_position - m_base);
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
+ fail(regex_constants::error_escape, m_position - m_base, "ASCII escape sequence terminated prematurely.");
          return result;
       }
- */
       result = static_cast<charT>(*m_position % 32);
       break;
    case regex_constants::escape_type_hex:
       ++m_position;
       if(m_position == m_end)
       {
- fail(regex_constants::error_escape, m_position - m_base);
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
+ fail(regex_constants::error_escape, m_position - m_base, "Hexadecimal escape sequence terminated prematurely.");
          return result;
       }
       // maybe have \x{ddd}
@@ -1617,7 +1660,10 @@
          ++m_position;
          if(m_position == m_end)
          {
- fail(regex_constants::error_escape, m_position - m_base);
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
+ fail(regex_constants::error_escape, m_position - m_base, "Missing } in hexadecimal escape sequence.");
             return result;
          }
          int i = this->m_traits.toi(m_position, m_end, 16);
@@ -1626,7 +1672,10 @@
             || ((std::numeric_limits<charT>::is_specialized) && (i > (int)(std::numeric_limits<charT>::max)()))
             || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
          {
- fail(regex_constants::error_badbrace, m_position - m_base);
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
+ fail(regex_constants::error_badbrace, m_position - m_base, "Hexadecimal escape sequence was invalid.");
             return result;
          }
          ++m_position;
@@ -1639,7 +1688,10 @@
          if((i < 0)
             || !valid_value(charT(0), i))
          {
- fail(regex_constants::error_escape, m_position - m_base);
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
+ fail(regex_constants::error_escape, m_position - m_base, "Escape sequence did not encode a valid character.");
             return result;
          }
          result = charT(i);
@@ -1654,14 +1706,20 @@
       int val = this->m_traits.toi(bp, bp + 1, 8);
       if(val != 0)
       {
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
          // Oops not an octal escape after all:
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, "Invalid octal escape sequence.");
          return result;
       }
       val = this->m_traits.toi(m_position, m_position + len, 8);
       if(val < 0)
       {
- fail(regex_constants::error_escape, m_position - m_base);
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
+ fail(regex_constants::error_escape, m_position - m_base, "Octal escape sequence is invalid.");
          return result;
       }
       return static_cast<charT>(val);
@@ -1671,6 +1729,9 @@
          ++m_position;
          if(m_position == m_end)
          {
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
             fail(regex_constants::error_escape, m_position - m_base);
             return false;
          }
@@ -1683,12 +1744,18 @@
                ++m_position;
             if(m_position == m_end)
             {
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
                fail(regex_constants::error_escape, m_position - m_base);
                return false;
             }
             string_type s = this->m_traits.lookup_collatename(++base, m_position++);
             if(s.empty())
             {
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
                fail(regex_constants::error_collate, m_position - m_base);
                return false;
             }
@@ -1698,6 +1765,9 @@
             }
          }
          // fall through is a failure:
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
          fail(regex_constants::error_escape, m_position - m_base);
          return false;
       }
@@ -1733,7 +1803,10 @@
    }
    else
    {
- fail(regex_constants::error_backref, m_position - m_end);
+ // Rewind to start of escape:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
+ fail(regex_constants::error_backref, m_position - m_base);
       return false;
    }
    return true;
@@ -1765,7 +1838,7 @@
       }
       if(++m_position == m_end) // skip the escape
       {
- fail(regex_constants::error_escape, m_position - m_base);
+ fail(regex_constants::error_escape, m_position - m_base, "Unterminated \\Q...\\E sequence.");
          return false;
       }
       // check to see if it's a \E:
@@ -1796,7 +1869,10 @@
 {
    if(++m_position == m_end)
    {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
       return false;
    }
    //
@@ -1855,7 +1931,10 @@
       v = this->m_traits.toi(m_position, m_end, 10);
       if((v < 0) || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark))
       {
- fail(regex_constants::error_backref, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base, "The recursive sub-expression refers to an invalid marking group, or is unterminated.");
          return false;
       }
 insert_recursion:
@@ -1874,7 +1953,10 @@
       v = this->m_traits.toi(m_position, m_end, 10);
       if((v <= 0) || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark))
       {
- fail(regex_constants::error_backref, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base, "An invalid or unterminated recursive sub-expression.");
          return false;
       }
       v += m_mark_count;
@@ -1894,7 +1976,10 @@
       v = m_mark_count + 1 - v;
       if(v <= 0)
       {
- fail(regex_constants::error_backref, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base, "An invalid or unterminated recursive sub-expression.");
          return false;
       }
       goto insert_recursion;
@@ -1917,7 +2002,10 @@
          // a lookbehind assertion:
          if(++m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          regex_constants::syntax_type t = this->m_traits.syntax_type(*m_position);
@@ -1955,15 +2043,21 @@
       pb->index = markid = -4;
       if(++m_position == m_end)
       {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
          return false;
       }
- int v = this->m_traits.toi(m_position, m_end, 10);
+ v = this->m_traits.toi(m_position, m_end, 10);
       if(*m_position == charT('R'))
       {
          if(++m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(*m_position == charT('&'))
@@ -1973,7 +2067,10 @@
                ++m_position;
             if(m_position == m_end)
             {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
                return false;
             }
             v = -static_cast<int>(hash_value_from_capture_name(base, m_position));
@@ -1986,12 +2083,18 @@
          br->index = v < 0 ? (v - 1) : 0;
          if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(++m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
       }
@@ -2002,7 +2105,10 @@
             ++m_position;
          if(m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          v = static_cast<int>(hash_value_from_capture_name(base, m_position));
@@ -2010,17 +2116,26 @@
          br->index = v;
          if(((*m_position != charT('>')) && (*m_position != charT('\''))) || (++m_position == m_end))
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base, "Unterminated named capture.");
             return false;
          }
          if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(++m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
       }
@@ -2031,19 +2146,28 @@
             ++m_position, ++def;
          if((m_position == m_end) || *def)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          re_brace* br = static_cast<re_brace*>(this->append_state(syntax_element_assert_backref, sizeof(re_brace)));
          br->index = 9999; // special magic value!
          if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(++m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
       }
@@ -2053,12 +2177,18 @@
          br->index = v;
          if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(++m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
       }
@@ -2067,25 +2197,37 @@
          // verify that we have a lookahead or lookbehind assert:
          if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_question)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(++m_position == m_end)
          {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(this->m_traits.syntax_type(*m_position) == regex_constants::escape_type_left_word)
          {
             if(++m_position == m_end)
             {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
                return false;
             }
             if((this->m_traits.syntax_type(*m_position) != regex_constants::syntax_equal)
                && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_not))
             {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
                return false;
             }
             m_position -= 3;
@@ -2095,7 +2237,10 @@
             if((this->m_traits.syntax_type(*m_position) != regex_constants::syntax_equal)
                && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_not))
             {
- fail(regex_constants::error_paren, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
                return false;
             }
             m_position -= 2;
@@ -2104,7 +2249,10 @@
       break;
       }
    case regex_constants::syntax_close_mark:
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
       return false;
    case regex_constants::escape_type_end_buffer:
       {
@@ -2126,14 +2274,20 @@
       const charT* base = ++m_position;
       if(m_position == m_end)
       {
- fail(regex_constants::error_paren, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
          return false;
       }
       while((m_position != m_end) && (*m_position != name_delim))
          ++m_position;
       if(m_position == m_end)
       {
- fail(regex_constants::error_paren, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
          return false;
       }
       this->m_pdata->set_name(base, m_position, markid);
@@ -2147,7 +2301,10 @@
          v = 0;
          if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
          {
- fail(regex_constants::error_backref, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          goto insert_recursion;
@@ -2160,7 +2317,10 @@
             ++m_position;
          if(m_position == m_end)
          {
- fail(regex_constants::error_backref, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          v = static_cast<int>(hash_value_from_capture_name(base, m_position));
@@ -2171,7 +2331,10 @@
          ++m_position;
          if(m_position == m_end)
          {
- fail(regex_constants::error_backref, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
             return false;
          }
          if(*m_position == charT('>'))
@@ -2182,7 +2345,10 @@
                ++m_position;
             if(m_position == m_end)
             {
- fail(regex_constants::error_backref, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
                return false;
             }
             v = static_cast<int>(hash_value_from_capture_name(base, m_position));
@@ -2195,7 +2361,13 @@
 option_group_jump:
       regex_constants::syntax_option_type opts = parse_options();
       if(m_position == m_end)
+ {
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
          return false;
+ }
       // make a note of whether we have a case change:
       m_has_case_change = ((opts & regbase::icase) != (this->flags() & regbase::icase));
       pb->index = markid = 0;
@@ -2214,7 +2386,10 @@
       }
       else
       {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base);
          return false;
       }
 
@@ -2236,12 +2411,21 @@
    // Unwind alternatives:
    //
    if(0 == unwind_alts(last_paren_start))
+ {
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base, "Invalid alternation operators within (?...) block.");
       return false;
+ }
    //
    // we either have a ')' or we have run out of characters prematurely:
    //
    if(m_position == m_end)
    {
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
       this->fail(regex_constants::error_paren, ::boost::re_detail::distance(m_base, m_end));
       return false;
    }
@@ -2272,7 +2456,10 @@
       if(this->m_last_state == jmp)
       {
          // Oops... we didn't have anything inside the assertion:
- fail(regex_constants::error_empty, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_perl_extension, m_position - m_base, "Invalid or empty zero width assertion.");
          return false;
       }
    }
@@ -2292,7 +2479,10 @@
       else if(this->getaddress(static_cast<re_alt*>(b)->alt.i, b)->type == syntax_element_alt)
       {
          // Can't have seen more than one alternative:
- fail(regex_constants::error_bad_pattern, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_bad_pattern, m_position - m_base, "More than one alternation operator | was encountered inside a conditional expression.");
          return false;
       }
       else
@@ -2301,7 +2491,10 @@
          b = this->getaddress(b->next.i, b);
          if((b->type == syntax_element_assert_backref) && (static_cast<re_brace*>(b)->index == 9999))
          {
- fail(regex_constants::error_bad_pattern, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_bad_pattern, m_position - m_base, "Alternation operators are not allowed inside a DEFINE block.");
             return false;
          }
       }
@@ -2311,7 +2504,10 @@
       if((b->type != syntax_element_assert_backref)
          && (b->type != syntax_element_startmark))
       {
- fail(regex_constants::error_badrepeat, m_position - m_base);
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
+ fail(regex_constants::error_badrepeat, m_position - m_base, "A repetition operator cannot be applied to a zero-width assertion.");
          return false;
       }
    }
@@ -2366,6 +2562,9 @@
    //
    if(++m_position == m_end)
    {
+ // Rewind to start of sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
       fail(regex_constants::error_escape, m_position - m_base);
       return false;
    }
@@ -2466,6 +2665,9 @@
       }
       if(++m_position == m_end)
       {
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
          fail(regex_constants::error_paren, m_position - m_base);
          return false;
       }
@@ -2476,6 +2678,9 @@
    {
       if(++m_position == m_end)
       {
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
          fail(regex_constants::error_paren, m_position - m_base);
          return false;
       }
@@ -2502,6 +2707,9 @@
          }
          if(++m_position == m_end)
          {
+ // Rewind to start of (? sequence:
+ --m_position;
+ while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
             fail(regex_constants::error_paren, m_position - m_base);
             return false;
          }
@@ -2528,7 +2736,7 @@
         )
       )
    {
- fail(regex_constants::error_empty, this->m_position - this->m_base);
+ fail(regex_constants::error_empty, this->m_position - this->m_base, "Can't terminate a sub-expression with an alternation operator |.");
       return false;
    }
    //

Modified: branches/release/boost/regex/v4/cpp_regex_traits.hpp
==============================================================================
--- branches/release/boost/regex/v4/cpp_regex_traits.hpp (original)
+++ branches/release/boost/regex/v4/cpp_regex_traits.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -187,6 +187,7 @@
 #ifndef BOOST_NO_STD_MESSAGES
          if(m_pmessages == b.m_pmessages)
          {
+ return m_pcollate < b.m_pcollate;
          }
          return m_pmessages < b.m_pmessages;
 #else
@@ -212,7 +213,7 @@
    m_locale = l;
    m_pctype = &BOOST_USE_FACET(std::ctype<charT>, l);
 #ifndef BOOST_NO_STD_MESSAGES
- m_pmessages = &BOOST_USE_FACET(std::messages<charT>, l);
+ m_pmessages = BOOST_HAS_FACET(std::messages<charT>, l) ? &BOOST_USE_FACET(std::messages<charT>, l) : 0;
 #endif
    m_pcollate = &BOOST_USE_FACET(std::collate<charT>, l);
    return result;
@@ -276,7 +277,7 @@
    typename std::messages<charT>::catalog cat = reinterpret_cast<std::messages<char>::catalog>(-1);
 #endif
    std::string cat_name(cpp_regex_traits<charT>::get_catalog_name());
- if(cat_name.size())
+ if(cat_name.size() && (this->m_pmessages != 0))
    {
       cat = this->m_pmessages->open(
          cat_name,
@@ -309,7 +310,8 @@
       }
       catch(...)
       {
- this->m_pmessages->close(cat);
+ if(this->m_pmessages)
+ this->m_pmessages->close(cat);
          throw;
       }
 #endif
@@ -653,7 +655,7 @@
    typename std::messages<charT>::catalog cat = reinterpret_cast<std::messages<char>::catalog>(-1);
 #endif
    std::string cat_name(cpp_regex_traits<charT>::get_catalog_name());
- if(cat_name.size())
+ if(cat_name.size() && (this->m_pmessages != 0))
    {
       cat = this->m_pmessages->open(
          cat_name,
@@ -716,7 +718,7 @@
          cpp_regex_traits_implementation<charT>::mask_unicode,
       };
 #else
- static const char_class_type masks[14] =
+ static const char_class_type masks[16] =
       {
          ::boost::re_detail::char_class_alnum,
          ::boost::re_detail::char_class_alpha,
@@ -837,8 +839,8 @@
       || ((mask & ::boost::re_detail::char_class_blank) && (m_pctype->is(std::ctype<charT>::space, c)) && !::boost::re_detail::is_separator(c))
       || ((mask & ::boost::re_detail::char_class_word) && (c == '_'))
       || ((mask & ::boost::re_detail::char_class_unicode) && ::boost::re_detail::is_extended(c))
- || ((mask & ::boost::re_detail::char_class_vertical) && (is_separator(c) || (c == '\v')))
- || ((mask & ::boost::re_detail::char_class_horizontal) && m_pctype->is(std::ctype<charT>::space, c) && !(is_separator(c) || (c == '\v')));
+ || ((mask & ::boost::re_detail::char_class_vertical_space) && (is_separator(c) || (c == '\v')))
+ || ((mask & ::boost::re_detail::char_class_horizontal_space) && m_pctype->is(std::ctype<charT>::space, c) && !(is_separator(c) || (c == '\v')));
 }
 #endif
 

Modified: branches/release/boost/regex/v4/cregex.hpp
==============================================================================
--- branches/release/boost/regex/v4/cregex.hpp (original)
+++ branches/release/boost/regex/v4/cregex.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -124,11 +124,11 @@
    REG_STARTEND = 00004
 } reg_exec_flags;
 
-//
-// POSIX error codes:
-//
+/*
+ * POSIX error codes:
+ */
 typedef unsigned reg_error_t;
-typedef reg_error_t reg_errcode_t; // backwards compatibility
+typedef reg_error_t reg_errcode_t; /* backwards compatibility */
 
 static const reg_error_t REG_NOERROR = 0; /* Success. */
 static const reg_error_t REG_NOMATCH = 1; /* Didn't find a match (for regexec). */
@@ -154,8 +154,9 @@
 static const reg_error_t REG_E_MEMORY = 15; /* = REG_ESIZE : out of memory */
 static const reg_error_t REG_ECOMPLEXITY = 18; /* complexity too high */
 static const reg_error_t REG_ESTACK = 19; /* out of stack space */
-static const reg_error_t REG_E_UNKNOWN = 20; /* unknown error */
-static const reg_error_t REG_ENOSYS = 20; /* = REG_E_UNKNOWN : Reserved. */
+static const reg_error_t REG_E_PERL = 20; /* Perl (?...) error */
+static const reg_error_t REG_E_UNKNOWN = 21; /* unknown error */
+static const reg_error_t REG_ENOSYS = 21; /* = REG_E_UNKNOWN : Reserved. */
 
 BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompA(regex_tA*, const char*, int);
 BOOST_REGEX_DECL regsize_t BOOST_REGEX_CCALL regerrorA(int, const regex_tA*, char*, regsize_t);
@@ -195,14 +196,14 @@
 #endif
 
 #ifdef __cplusplus
-} // extern "C"
-} // namespace
+} /* extern "C" */
+} /* namespace */
 #endif
 
-//
-// C++ high level wrapper goes here:
-//
 #if defined(__cplusplus)
+/*
+ * C++ high level wrapper goes here:
+ */
 #include <string>
 #include <vector>
 namespace boost{
@@ -228,7 +229,7 @@
 struct pred3;
 struct pred4;
 
-} // namespace re_detail
+} /* namespace re_detail */
 
 #if (defined(BOOST_MSVC) || defined(__BORLANDC__)) && !defined(BOOST_DISABLE_WIN32)
 typedef bool (__cdecl *GrepCallback)(const RegEx& expression);
@@ -257,9 +258,9 @@
    unsigned int SetExpression(const std::string& s, bool icase = false){ return SetExpression(s.c_str(), icase); }
    std::string Expression()const;
    unsigned int error_code()const;
- //
- // now matching operators:
- //
+ /*
+ * now matching operators:
+ */
    bool Match(const char* p, match_flag_type flags = match_default);
    bool Match(const std::string& s, match_flag_type flags = match_default) { return Match(s.c_str(), flags); }
    bool Search(const char* p, match_flag_type flags = match_default);
@@ -283,9 +284,9 @@
                        bool copy = true, match_flag_type flags = match_default);
 
    std::size_t Split(std::vector<std::string>& v, std::string& s, match_flag_type flags = match_default, unsigned max_count = ~0);
- //
- // now operators for returning what matched in more detail:
- //
+ /*
+ * now operators for returning what matched in more detail:
+ */
    std::size_t Position(int i = 0)const;
    std::size_t Length(int i = 0)const;
    bool Matched(int i = 0)const;
@@ -312,11 +313,11 @@
 #pragma warning(pop)
 #endif
 
-} // namespace boost
+} /* namespace boost */
 
-#endif
+#endif /* __cplusplus */
 
-#endif // include guard
+#endif /* include guard */
 
 
 

Modified: branches/release/boost/regex/v4/error_type.hpp
==============================================================================
--- branches/release/boost/regex/v4/error_type.hpp (original)
+++ branches/release/boost/regex/v4/error_type.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -28,8 +28,8 @@
 
 enum error_type{
 
- error_ok = 0, // not used
- error_no_match = 1, // not used
+ error_ok = 0, /* not used */
+ error_no_match = 1, /* not used */
    error_bad_pattern = 2,
    error_collate = 3,
    error_ctype = 4,
@@ -42,17 +42,18 @@
    error_range = 11,
    error_space = 12,
    error_badrepeat = 13,
- error_end = 14, // not used
+ error_end = 14, /* not used */
    error_size = 15,
- error_right_paren = 16, // not used
+ error_right_paren = 16, /* not used */
    error_empty = 17,
    error_complexity = 18,
    error_stack = 19,
- error_unknown = 20
+ error_perl_extension = 20,
+ error_unknown = 21
 };
 
 }
 }
-#endif // __cplusplus
+#endif /* __cplusplus */
 
 #endif

Modified: branches/release/boost/regex/v4/match_flags.hpp
==============================================================================
--- branches/release/boost/regex/v4/match_flags.hpp (original)
+++ branches/release/boost/regex/v4/match_flags.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -31,43 +31,43 @@
 typedef enum _match_flags
 {
    match_default = 0,
- match_not_bol = 1, // first is not start of line
- match_not_eol = match_not_bol << 1, // last is not end of line
- match_not_bob = match_not_eol << 1, // first is not start of buffer
- match_not_eob = match_not_bob << 1, // last is not end of buffer
- match_not_bow = match_not_eob << 1, // first is not start of word
- match_not_eow = match_not_bow << 1, // last is not end of word
- match_not_dot_newline = match_not_eow << 1, // \n is not matched by '.'
- match_not_dot_null = match_not_dot_newline << 1, // '\0' is not matched by '.'
- match_prev_avail = match_not_dot_null << 1, // *--first is a valid expression
- match_init = match_prev_avail << 1, // internal use
- match_any = match_init << 1, // don't care what we match
- match_not_null = match_any << 1, // string can't be null
- match_continuous = match_not_null << 1, // each grep match must continue from
- // uninterupted from the previous one
- match_partial = match_continuous << 1, // find partial matches
+ match_not_bol = 1, /* first is not start of line */
+ match_not_eol = match_not_bol << 1, /* last is not end of line */
+ match_not_bob = match_not_eol << 1, /* first is not start of buffer */
+ match_not_eob = match_not_bob << 1, /* last is not end of buffer */
+ match_not_bow = match_not_eob << 1, /* first is not start of word */
+ match_not_eow = match_not_bow << 1, /* last is not end of word */
+ match_not_dot_newline = match_not_eow << 1, /* \n is not matched by '.' */
+ match_not_dot_null = match_not_dot_newline << 1, /* '\0' is not matched by '.' */
+ match_prev_avail = match_not_dot_null << 1, /* *--first is a valid expression */
+ match_init = match_prev_avail << 1, /* internal use */
+ match_any = match_init << 1, /* don't care what we match */
+ match_not_null = match_any << 1, /* string can't be null */
+ match_continuous = match_not_null << 1, /* each grep match must continue from */
+ /* uninterupted from the previous one */
+ match_partial = match_continuous << 1, /* find partial matches */
    
- match_stop = match_partial << 1, // stop after first match (grep) V3 only
- match_not_initial_null = match_stop, // don't match initial null, V4 only
- match_all = match_stop << 1, // must find the whole of input even if match_any is set
- match_perl = match_all << 1, // Use perl matching rules
- match_posix = match_perl << 1, // Use POSIX matching rules
- match_nosubs = match_posix << 1, // don't trap marked subs
- match_extra = match_nosubs << 1, // include full capture information for repeated captures
- match_single_line = match_extra << 1, // treat text as single line and ignor any \n's when matching ^ and $.
- match_unused1 = match_single_line << 1, // unused
- match_unused2 = match_unused1 << 1, // unused
- match_unused3 = match_unused2 << 1, // unused
+ match_stop = match_partial << 1, /* stop after first match (grep) V3 only */
+ match_not_initial_null = match_stop, /* don't match initial null, V4 only */
+ match_all = match_stop << 1, /* must find the whole of input even if match_any is set */
+ match_perl = match_all << 1, /* Use perl matching rules */
+ match_posix = match_perl << 1, /* Use POSIX matching rules */
+ match_nosubs = match_posix << 1, /* don't trap marked subs */
+ match_extra = match_nosubs << 1, /* include full capture information for repeated captures */
+ match_single_line = match_extra << 1, /* treat text as single line and ignor any \n's when matching ^ and $. */
+ match_unused1 = match_single_line << 1, /* unused */
+ match_unused2 = match_unused1 << 1, /* unused */
+ match_unused3 = match_unused2 << 1, /* unused */
    match_max = match_unused3,
 
- format_perl = 0, // perl style replacement
- format_default = 0, // ditto.
- format_sed = match_max << 1, // sed style replacement.
- format_all = format_sed << 1, // enable all extentions to sytax.
- format_no_copy = format_all << 1, // don't copy non-matching segments.
- format_first_only = format_no_copy << 1, // Only replace first occurance.
- format_is_if = format_first_only << 1, // internal use only.
- format_literal = format_is_if << 1 // treat string as a literal
+ format_perl = 0, /* perl style replacement */
+ format_default = 0, /* ditto. */
+ format_sed = match_max << 1, /* sed style replacement. */
+ format_all = format_sed << 1, /* enable all extentions to sytax. */
+ format_no_copy = format_all << 1, /* don't copy non-matching segments. */
+ format_first_only = format_no_copy << 1, /* Only replace first occurance. */
+ format_is_if = format_first_only << 1, /* internal use only. */
+ format_literal = format_is_if << 1 /* treat string as a literal */
 
 } match_flags;
 
@@ -96,10 +96,10 @@
 #endif
 
 #ifdef __cplusplus
-} // namespace regex_constants
-//
-// import names into boost for backwards compatiblity:
-//
+} /* namespace regex_constants */
+/*
+ * import names into boost for backwards compatiblity:
+ */
 using regex_constants::match_flag_type;
 using regex_constants::match_default;
 using regex_constants::match_not_bol;
@@ -111,28 +111,28 @@
 using regex_constants::match_not_dot_newline;
 using regex_constants::match_not_dot_null;
 using regex_constants::match_prev_avail;
-//using regex_constants::match_init;
+/* using regex_constants::match_init; */
 using regex_constants::match_any;
 using regex_constants::match_not_null;
 using regex_constants::match_continuous;
 using regex_constants::match_partial;
-//using regex_constants::match_stop;
+/*using regex_constants::match_stop; */
 using regex_constants::match_all;
 using regex_constants::match_perl;
 using regex_constants::match_posix;
 using regex_constants::match_nosubs;
 using regex_constants::match_extra;
 using regex_constants::match_single_line;
-//using regex_constants::match_max;
+/*using regex_constants::match_max; */
 using regex_constants::format_all;
 using regex_constants::format_sed;
 using regex_constants::format_perl;
 using regex_constants::format_default;
 using regex_constants::format_no_copy;
 using regex_constants::format_first_only;
-//using regex_constants::format_is_if;
+/*using regex_constants::format_is_if;*/
 
-} // namespace boost
-#endif // __cplusplus
-#endif // include guard
+} /* namespace boost */
+#endif /* __cplusplus */
+#endif /* include guard */
 

Modified: branches/release/boost/regex/v4/match_results.hpp
==============================================================================
--- branches/release/boost/regex/v4/match_results.hpp (original)
+++ branches/release/boost/regex/v4/match_results.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (c) 1998-2002
+ * Copyright (c) 1998-2009
  * John Maddock
  *
  * Use, modification and distribution are subject to the
@@ -74,16 +74,30 @@
    // construct/copy/destroy:
    explicit match_results(const Allocator& a = Allocator())
 #ifndef BOOST_NO_STD_ALLOCATOR
- : m_subs(a), m_base(), m_last_closed_paren(0) {}
+ : m_subs(a), m_base(), m_last_closed_paren(0), m_is_singular(true) {}
 #else
- : m_subs(), m_base(), m_last_closed_paren(0) { (void)a; }
+ : m_subs(), m_base(), m_last_closed_paren(0), m_is_singular(true) { (void)a; }
 #endif
    match_results(const match_results& m)
- : m_subs(m.m_subs), m_base(m.m_base) {}
+ : m_subs(m.m_subs), m_named_subs(m.m_named_subs), m_last_closed_paren(m.m_last_closed_paren), m_is_singular(m.m_is_singular)
+ {
+ if(!m_is_singular)
+ {
+ m_base = m.m_base;
+ m_null = m.m_null;
+ }
+ }
    match_results& operator=(const match_results& m)
    {
       m_subs = m.m_subs;
- m_base = m.m_base;
+ m_named_subs = m.m_named_subs;
+ m_last_closed_paren = m.m_last_closed_paren;
+ m_is_singular = m.m_is_singular;
+ if(!m_is_singular)
+ {
+ m_base = m.m_base;
+ m_null = m.m_null;
+ }
       return *this;
    }
    ~match_results(){}
@@ -98,6 +112,8 @@
    // element access:
    difference_type length(int sub = 0) const
    {
+ if(m_is_singular)
+ raise_logic_error();
       sub += 2;
       if((sub < (int)m_subs.size()) && (sub > 0))
          return m_subs[sub].length();
@@ -105,16 +121,20 @@
    }
    difference_type length(const char_type* sub) const
    {
- const char_type* end = sub;
- while(*end) ++end;
- return length(named_subexpression_index(sub, end));
+ if(m_is_singular)
+ raise_logic_error();
+ const char_type* sub_end = sub;
+ while(*sub_end) ++sub_end;
+ return length(named_subexpression_index(sub, sub_end));
    }
    template <class charT>
    difference_type length(const charT* sub) const
    {
- const charT* end = sub;
- while(*end) ++end;
- return length(named_subexpression_index(sub, end));
+ if(m_is_singular)
+ raise_logic_error();
+ const charT* sub_end = sub;
+ while(*sub_end) ++sub_end;
+ return length(named_subexpression_index(sub, sub_end));
    }
    template <class charT, class Traits, class A>
    difference_type length(const std::basic_string<charT, Traits, A>& sub) const
@@ -123,6 +143,8 @@
    }
    difference_type position(size_type sub = 0) const
    {
+ if(m_is_singular)
+ raise_logic_error();
       sub += 2;
       if(sub < m_subs.size())
       {
@@ -136,16 +158,16 @@
    }
    difference_type position(const char_type* sub) const
    {
- const char_type* end = sub;
- while(*end) ++end;
- return position(named_subexpression_index(sub, end));
+ const char_type* sub_end = sub;
+ while(*sub_end) ++sub_end;
+ return position(named_subexpression_index(sub, sub_end));
    }
    template <class charT>
    difference_type position(const charT* sub) const
    {
- const charT* end = sub;
- while(*end) ++end;
- return position(named_subexpression_index(sub, end));
+ const charT* sub_end = sub;
+ while(*sub_end) ++sub_end;
+ return position(named_subexpression_index(sub, sub_end));
    }
    template <class charT, class Traits, class A>
    difference_type position(const std::basic_string<charT, Traits, A>& sub) const
@@ -154,6 +176,8 @@
    }
    string_type str(int sub = 0) const
    {
+ if(m_is_singular)
+ raise_logic_error();
       sub += 2;
       string_type result;
       if(sub < (int)m_subs.size() && (sub > 0))
@@ -187,6 +211,8 @@
    }
    const_reference operator[](int sub) const
    {
+ if(m_is_singular && m_subs.empty())
+ raise_logic_error();
       sub += 2;
       if(sub < (int)m_subs.size() && (sub >= 0))
       {
@@ -199,6 +225,8 @@
    //
    const_reference named_subexpression(const char_type* i, const char_type* j) const
    {
+ if(m_is_singular)
+ raise_logic_error();
       int index = m_named_subs->get_id(i, j);
       return index > 0 ? (*this)[index] : m_null;
    }
@@ -215,6 +243,8 @@
    }
    int named_subexpression_index(const char_type* i, const char_type* j) const
    {
+ if(m_is_singular)
+ raise_logic_error();
       int index = m_named_subs->get_id(i, j);
       return index > 0 ? index : -20;
    }
@@ -266,11 +296,15 @@
 
    const_reference prefix() const
    {
+ if(m_is_singular)
+ raise_logic_error();
       return (*this)[-1];
    }
 
    const_reference suffix() const
    {
+ if(m_is_singular)
+ raise_logic_error();
       return (*this)[-2];
    }
    const_iterator begin() const
@@ -282,44 +316,67 @@
       return m_subs.end();
    }
    // format:
- template <class OutputIterator>
+ template <class OutputIterator, class Functor>
    OutputIterator format(OutputIterator out,
- const string_type& fmt,
+ Functor fmt,
                          match_flag_type flags = format_default) const
    {
- re_detail::trivial_format_traits<char_type> traits;
- return re_detail::regex_format_imp(out, *this, fmt.data(), fmt.data() + fmt.size(), flags, traits);
- }
- string_type format(const string_type& fmt,
- match_flag_type flags = format_default) const
- {
- string_type result;
- re_detail::string_out_iterator<string_type> i(result);
- re_detail::trivial_format_traits<char_type> traits;
- re_detail::regex_format_imp(i, *this, fmt.data(), fmt.data() + fmt.size(), flags, traits);
+ if(m_is_singular)
+ raise_logic_error();
+ typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, OutputIterator>::type F;
+ F func(fmt);
+ return func(*this, out, flags);
+ }
+ template <class Functor>
+ string_type format(Functor fmt, match_flag_type flags = format_default) const
+ {
+ if(m_is_singular)
+ raise_logic_error();
+ std::basic_string<char_type> result;
+ re_detail::string_out_iterator<std::basic_string<char_type> > i(result);
+
+ typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, re_detail::string_out_iterator<std::basic_string<char_type> > >::type F;
+ F func(fmt);
+
+ func(*this, i, flags);
       return result;
    }
    // format with locale:
- template <class OutputIterator, class RegexT>
+ template <class OutputIterator, class Functor, class RegexT>
    OutputIterator format(OutputIterator out,
- const string_type& fmt,
+ Functor fmt,
                          match_flag_type flags,
                          const RegexT& re) const
    {
- return ::boost::re_detail::regex_format_imp(out, *this, fmt.data(), fmt.data() + fmt.size(), flags, re.get_traits());
+ if(m_is_singular)
+ raise_logic_error();
+ typedef ::boost::regex_traits_wrapper<typename RegexT::traits_type> traits_type;
+ typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, OutputIterator, traits_type>::type F;
+ F func(fmt);
+ return func(*this, out, flags, re.get_traits());
    }
- template <class RegexT>
- string_type format(const string_type& fmt,
+ template <class RegexT, class Functor>
+ string_type format(Functor fmt,
                       match_flag_type flags,
                       const RegexT& re) const
    {
- string_type result;
- re_detail::string_out_iterator<string_type> i(result);
- ::boost::re_detail::regex_format_imp(i, *this, fmt.data(), fmt.data() + fmt.size(), flags, re.get_traits());
+ if(m_is_singular)
+ raise_logic_error();
+ typedef ::boost::regex_traits_wrapper<typename RegexT::traits_type> traits_type;
+ std::basic_string<char_type> result;
+ re_detail::string_out_iterator<std::basic_string<char_type> > i(result);
+
+ typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, re_detail::string_out_iterator<std::basic_string<char_type> >, traits_type >::type F;
+ F func(fmt);
+
+ func(*this, i, flags, re.get_traits());
       return result;
    }
+
    const_reference get_last_closed_paren()const
    {
+ if(m_is_singular)
+ raise_logic_error();
       return m_last_closed_paren == 0 ? m_null : (*this)[m_last_closed_paren];
    }
 
@@ -334,11 +391,39 @@
    void swap(match_results& that)
    {
       std::swap(m_subs, that.m_subs);
- std::swap(m_base, that.m_base);
+ std::swap(m_named_subs, that.m_named_subs);
+ std::swap(m_last_closed_paren, that.m_last_closed_paren);
+ std::swap(m_is_singular, that.m_is_singular);
+ if(m_is_singular)
+ {
+ if(!that.m_is_singular)
+ {
+ m_base = that.m_base;
+ m_null = that.m_null;
+ }
+ }
+ else if(that.m_is_singular)
+ {
+ that.m_base = m_base;
+ that.m_null = m_null;
+ }
+ else
+ {
+ std::swap(m_base, that.m_base);
+ std::swap(m_null, that.m_null);
+ }
    }
    bool operator==(const match_results& that)const
    {
- return (m_subs == that.m_subs) && (m_base == that.m_base);
+ if(m_is_singular)
+ {
+ return that.m_is_singular;
+ }
+ else if(that.m_is_singular)
+ {
+ return false;
+ }
+ return (m_subs == that.m_subs) && (m_base == that.m_base) && (m_last_closed_paren == that.m_last_closed_paren);
    }
    bool operator!=(const match_results& that)const
    { return !(*this == that); }
@@ -348,6 +433,8 @@
 
    const capture_sequence_type& captures(int i)const
    {
+ if(m_is_singular)
+ raise_logic_error();
       return (*this)[i].captures();
    }
 #endif
@@ -364,6 +451,7 @@
       m_null.first = i;
       m_null.second = i;
       m_null.matched = false;
+ m_is_singular = false;
    }
 
    void BOOST_REGEX_CALL set_second(BidiIterator i, size_type pos, bool m = true, bool escape_k = false)
@@ -381,6 +469,7 @@
          m_null.first = i;
          m_null.second = i;
          m_null.matched = false;
+ m_is_singular = false;
       }
    }
    void BOOST_REGEX_CALL set_size(size_type n, BidiIterator i, BidiIterator j)
@@ -411,6 +500,7 @@
    }
    void BOOST_REGEX_CALL set_first(BidiIterator i)
    {
+ BOOST_ASSERT(m_subs.size() > 2);
       // set up prefix:
       m_subs[1].second = i;
       m_subs[1].matched = (m_subs[1].first != i);
@@ -446,16 +536,32 @@
    }
 
 private:
- vector_type m_subs; // subexpressions
- BidiIterator m_base; // where the search started from
- sub_match<BidiIterator> m_null; // a null match
- boost::shared_ptr<named_sub_type> m_named_subs;
- int m_last_closed_paren;
+ //
+ // Error handler called when an uninitialized match_results is accessed:
+ //
+ static void raise_logic_error()
+ {
+ std::logic_error e("Attempt to access an uninitialzed boost::match_results<> class.");
+ boost::throw_exception(e);
+ }
+
+
+ vector_type m_subs; // subexpressions
+ BidiIterator m_base; // where the search started from
+ sub_match<BidiIterator> m_null; // a null match
+ boost::shared_ptr<named_sub_type> m_named_subs; // Shared copy of named subs in the regex object
+ int m_last_closed_paren; // Last ) to be seen - used for formatting
+ bool m_is_singular; // True if our stored iterators are singular
 };
 
 template <class BidiIterator, class Allocator>
 void BOOST_REGEX_CALL match_results<BidiIterator, Allocator>::maybe_assign(const match_results<BidiIterator, Allocator>& m)
 {
+ if(m_is_singular)
+ {
+ *this = m;
+ return;
+ }
    const_iterator p1, p2;
    p1 = begin();
    p2 = m.begin();

Modified: branches/release/boost/regex/v4/perl_matcher_non_recursive.hpp
==============================================================================
--- branches/release/boost/regex/v4/perl_matcher_non_recursive.hpp (original)
+++ branches/release/boost/regex/v4/perl_matcher_non_recursive.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -188,7 +188,7 @@
          if(!(this->*proc)())
          {
             if(state_count > max_state_count)
- raise_error(traits_inst, regex_constants::error_space);
+ raise_error(traits_inst, regex_constants::error_complexity);
             if((m_match_flags & match_partial) && (position == last) && (position != search_base))
                m_has_partial_match = true;
             bool successful_unwind = unwind(false);
@@ -219,7 +219,7 @@
       m_backup_state = block;
    }
    else
- raise_error(traits_inst, regex_constants::error_size);
+ raise_error(traits_inst, regex_constants::error_stack);
 }
 
 template <class BidiIterator, class Allocator, class traits>

Modified: branches/release/boost/regex/v4/perl_matcher_recursive.hpp
==============================================================================
--- branches/release/boost/regex/v4/perl_matcher_recursive.hpp (original)
+++ branches/release/boost/regex/v4/perl_matcher_recursive.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -99,7 +99,7 @@
    };
 
    if(state_count > max_state_count)
- raise_error(traits_inst, regex_constants::error_space);
+ raise_error(traits_inst, regex_constants::error_complexity);
    while(pstate)
    {
       matcher_proc_type proc = s_match_vtable[pstate->type];

Modified: branches/release/boost/regex/v4/regex_format.hpp
==============================================================================
--- branches/release/boost/regex/v4/regex_format.hpp (original)
+++ branches/release/boost/regex/v4/regex_format.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,7 +1,7 @@
 /*
  *
- * Copyright (c) 1998-2002
- * John Maddock
+ * Copyright (c) 1998-2009 John Maddock
+ * Copyright 2008 Eric Niebler.
  *
  * Use, modification and distribution are subject to the
  * Boost Software License, Version 1.0. (See accompanying file
@@ -21,6 +21,19 @@
 #ifndef BOOST_REGEX_FORMAT_HPP
 #define BOOST_REGEX_FORMAT_HPP
 
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/type_traits/is_function.hpp>
+#include <boost/type_traits/is_class.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/not.hpp>
+#ifndef BOOST_NO_SFINAE
+#include <boost/mpl/has_xxx.hpp>
+#endif
 
 namespace boost{
 
@@ -76,15 +89,15 @@
    }
 };
 
-template <class OutputIterator, class Results, class traits>
+template <class OutputIterator, class Results, class traits, class ForwardIter>
 class basic_regex_formatter
 {
 public:
    typedef typename traits::char_type char_type;
    basic_regex_formatter(OutputIterator o, const Results& r, const traits& t)
       : m_traits(t), m_results(r), m_out(o), m_state(output_copy), m_restore_state(output_copy), m_have_conditional(false) {}
- OutputIterator format(const char_type* p1, const char_type* p2, match_flag_type f);
- OutputIterator format(const char_type* p1, match_flag_type f)
+ OutputIterator format(ForwardIter p1, ForwardIter p2, match_flag_type f);
+ OutputIterator format(ForwardIter p1, match_flag_type f)
    {
       return format(p1, p1 + m_traits.length(p1), f);
    }
@@ -109,22 +122,75 @@
    void format_until_scope_end();
    bool handle_perl_verb(bool have_brace);
 
- const traits& m_traits; // the traits class for localised formatting operations
- const Results& m_results; // the match_results being used.
- OutputIterator m_out; // where to send output.
- const char_type* m_position; // format string, current position
- const char_type* m_end; // format string end
- match_flag_type m_flags; // format flags to use
- output_state m_state; // what to do with the next character
- output_state m_restore_state; // what state to restore to.
- bool m_have_conditional; // we are parsing a conditional
+ inline typename Results::value_type const& get_named_sub(ForwardIter i, ForwardIter j, const mpl::false_&)
+ {
+ std::vector<char_type> v(i, j);
+ return (i != j) ? this->m_results.named_subexpression(&v[0], &v[0] + v.size())
+ : this->m_results.named_subexpression(static_cast<const char_type*>(0), static_cast<const char_type*>(0));
+ }
+ inline typename Results::value_type const& get_named_sub(ForwardIter i, ForwardIter j, const mpl::true_&)
+ {
+ return this->m_results.named_subexpression(i, j);
+ }
+ inline typename Results::value_type const& get_named_sub(ForwardIter i, ForwardIter j)
+ {
+ typedef typename boost::is_convertible<ForwardIter, const char_type*>::type tag_type;
+ return get_named_sub(i, j, tag_type());
+ }
+ inline int get_named_sub_index(ForwardIter i, ForwardIter j, const mpl::false_&)
+ {
+ std::vector<char_type> v(i, j);
+ return (i != j) ? this->m_results.named_subexpression_index(&v[0], &v[0] + v.size())
+ : this->m_results.named_subexpression_index(static_cast<const char_type*>(0), static_cast<const char_type*>(0));
+ }
+ inline int get_named_sub_index(ForwardIter i, ForwardIter j, const mpl::true_&)
+ {
+ return this->m_results.named_subexpression_index(i, j);
+ }
+ inline int get_named_sub_index(ForwardIter i, ForwardIter j)
+ {
+ typedef typename boost::is_convertible<ForwardIter, const char_type*>::type tag_type;
+ return get_named_sub_index(i, j, tag_type());
+ }
+ inline int toi(ForwardIter& i, ForwardIter j, int base, const boost::mpl::false_&)
+ {
+ if(i != j)
+ {
+ std::vector<char_type> v(i, j);
+ const char_type* start = &v[0];
+ const char_type* pos = start;
+ int r = m_traits.toi(pos, &v[0] + v.size(), base);
+ std::advance(i, pos - start);
+ return r;
+ }
+ return -1;
+ }
+ inline int toi(ForwardIter& i, ForwardIter j, int base, const boost::mpl::true_&)
+ {
+ return m_traits.toi(i, j, base);
+ }
+ inline int toi(ForwardIter& i, ForwardIter j, int base)
+ {
+ typedef typename boost::is_convertible<ForwardIter, const char_type*&>::type tag_type;
+ return toi(i, j, base, tag_type());
+ }
+
+ const traits& m_traits; // the traits class for localised formatting operations
+ const Results& m_results; // the match_results being used.
+ OutputIterator m_out; // where to send output.
+ ForwardIter m_position; // format string, current position
+ ForwardIter m_end; // format string end
+ match_flag_type m_flags; // format flags to use
+ output_state m_state; // what to do with the next character
+ output_state m_restore_state; // what state to restore to.
+ bool m_have_conditional; // we are parsing a conditional
 private:
    basic_regex_formatter(const basic_regex_formatter&);
    basic_regex_formatter& operator=(const basic_regex_formatter&);
 };
 
-template <class OutputIterator, class Results, class traits>
-OutputIterator basic_regex_formatter<OutputIterator, Results, traits>::format(const char_type* p1, const char_type* p2, match_flag_type f)
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+OutputIterator basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format(ForwardIter p1, ForwardIter p2, match_flag_type f)
 {
    m_position = p1;
    m_end = p2;
@@ -133,8 +199,8 @@
    return m_out;
 }
 
-template <class OutputIterator, class Results, class traits>
-void basic_regex_formatter<OutputIterator, Results, traits>::format_all()
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_all()
 {
    // over and over:
    while(m_position != m_end)
@@ -211,8 +277,8 @@
    }
 }
 
-template <class OutputIterator, class Results, class traits>
-void basic_regex_formatter<OutputIterator, Results, traits>::format_perl()
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_perl()
 {
    //
    // On entry *m_position points to a '$' character
@@ -233,7 +299,7 @@
    // OK find out what kind it is:
    //
    bool have_brace = false;
- const char_type* save_position = m_position;
+ ForwardIter save_position = m_position;
    switch(*m_position)
    {
    case '&':
@@ -254,12 +320,12 @@
    case '+':
       if((++m_position != m_end) && (*m_position == '{'))
       {
- const char_type* base = ++m_position;
+ ForwardIter base = ++m_position;
          while((m_position != m_end) && (*m_position != '}')) ++m_position;
          if(m_position != m_end)
          {
             // Named sub-expression:
- put(this->m_results.named_subexpression(base, m_position));
+ put(get_named_sub(base, m_position));
             ++m_position;
             break;
          }
@@ -279,7 +345,7 @@
       {
          std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
          //len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
- int v = m_traits.toi(m_position, m_position + len, 10);
+ int v = this->toi(m_position, m_position + len, 10);
          if((v < 0) || (have_brace && ((m_position == m_end) || (*m_position != '}'))))
          {
             // Look for a Perl-5.10 verb:
@@ -300,8 +366,8 @@
    }
 }
 
-template <class OutputIterator, class Results, class traits>
-bool basic_regex_formatter<OutputIterator, Results, traits>::handle_perl_verb(bool have_brace)
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+bool basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::handle_perl_verb(bool have_brace)
 {
    //
    // We may have a capitalised string containing a Perl action:
@@ -313,6 +379,8 @@
    static const char_type LAST_SUBMATCH_RESULT[] = { 'L', 'A', 'S', 'T', '_', 'S', 'U', 'B', 'M', 'A', 'T', 'C', 'H', '_', 'R', 'E', 'S', 'U', 'L', 'T' };
    static const char_type LAST_SUBMATCH_RESULT_ALT[] = { '^', 'N' };
 
+ if(m_position == m_end)
+ return false;
    if(have_brace && (*m_position == '^'))
       ++m_position;
 
@@ -323,7 +391,7 @@
       m_position += 5;
       if(have_brace)
       {
- if(*m_position == '}')
+ if((m_position != m_end) && (*m_position == '}'))
             ++m_position;
          else
          {
@@ -339,7 +407,7 @@
       m_position += 8;
       if(have_brace)
       {
- if(*m_position == '}')
+ if((m_position != m_end) && (*m_position == '}'))
             ++m_position;
          else
          {
@@ -355,7 +423,7 @@
       m_position += 9;
       if(have_brace)
       {
- if(*m_position == '}')
+ if((m_position != m_end) && (*m_position == '}'))
             ++m_position;
          else
          {
@@ -371,7 +439,7 @@
       m_position += 16;
       if(have_brace)
       {
- if(*m_position == '}')
+ if((m_position != m_end) && (*m_position == '}'))
             ++m_position;
          else
          {
@@ -387,7 +455,7 @@
       m_position += 20;
       if(have_brace)
       {
- if(*m_position == '}')
+ if((m_position != m_end) && (*m_position == '}'))
             ++m_position;
          else
          {
@@ -403,7 +471,7 @@
       m_position += 2;
       if(have_brace)
       {
- if(*m_position == '}')
+ if((m_position != m_end) && (*m_position == '}'))
             ++m_position;
          else
          {
@@ -417,8 +485,8 @@
    return false;
 }
 
-template <class OutputIterator, class Results, class traits>
-void basic_regex_formatter<OutputIterator, Results, traits>::format_escape()
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_escape()
 {
    // skip the escape and check for trailing escape:
    if(++m_position == m_end)
@@ -463,7 +531,7 @@
       if(*m_position == static_cast<char_type>('{'))
       {
          ++m_position;
- int val = m_traits.toi(m_position, m_end, 16);
+ int val = this->toi(m_position, m_end, 16);
          if(val < 0)
          {
             // invalid value treat everything as literals:
@@ -471,8 +539,9 @@
             put(static_cast<char_type>('{'));
             return;
          }
- if(*m_position != static_cast<char_type>('}'))
+ if((m_position == m_end) || (*m_position != static_cast<char_type>('}')))
          {
+ --m_position;
             while(*m_position != static_cast<char_type>('\\'))
                --m_position;
             ++m_position;
@@ -487,7 +556,7 @@
       {
          std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
          len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
- int val = m_traits.toi(m_position, m_position + len, 16);
+ int val = this->toi(m_position, m_position + len, 16);
          if(val < 0)
          {
             --m_position;
@@ -549,7 +618,9 @@
             break;
       }
       // see if we have a \n sed style backreference:
- int v = m_traits.toi(m_position, m_position+1, 10);
+ std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
+ len = (std::min)(static_cast<std::ptrdiff_t>(1), len);
+ int v = this->toi(m_position, m_position+len, 10);
       if((v > 0) || ((v == 0) && (m_flags & ::boost::regex_constants::format_sed)))
       {
          put(m_results[v]);
@@ -559,9 +630,9 @@
       {
          // octal ecape sequence:
          --m_position;
- std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
+ len = ::boost::re_detail::distance(m_position, m_end);
          len = (std::min)(static_cast<std::ptrdiff_t>(4), len);
- v = m_traits.toi(m_position, m_position + len, 8);
+ v = this->toi(m_position, m_position + len, 8);
          BOOST_ASSERT(v >= 0);
          put(static_cast<char_type>(v));
          break;
@@ -572,8 +643,8 @@
    }
 }
 
-template <class OutputIterator, class Results, class traits>
-void basic_regex_formatter<OutputIterator, Results, traits>::format_conditional()
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_conditional()
 {
    if(m_position == m_end)
    {
@@ -584,15 +655,15 @@
    int v;
    if(*m_position == '{')
    {
- const char_type* base = m_position;
+ ForwardIter base = m_position;
       ++m_position;
- v = m_traits.toi(m_position, m_end, 10);
+ v = this->toi(m_position, m_end, 10);
       if(v < 0)
       {
          // Try a named subexpression:
          while((m_position != m_end) && (*m_position != '}'))
             ++m_position;
- v = m_results.named_subexpression_index(base + 1, m_position);
+ v = this->get_named_sub_index(base + 1, m_position);
       }
       if((v < 0) || (*m_position != '}'))
       {
@@ -608,7 +679,7 @@
    {
       std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
       len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
- v = m_traits.toi(m_position, m_position + len, 10);
+ v = this->toi(m_position, m_position + len, 10);
    }
    if(v < 0)
    {
@@ -657,8 +728,8 @@
    }
 }
 
-template <class OutputIterator, class Results, class traits>
-void basic_regex_formatter<OutputIterator, Results, traits>::format_until_scope_end()
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_until_scope_end()
 {
    do
    {
@@ -669,8 +740,8 @@
    }while(m_position != m_end);
 }
 
-template <class OutputIterator, class Results, class traits>
-void basic_regex_formatter<OutputIterator, Results, traits>::put(char_type c)
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::put(char_type c)
 {
    // write a single character to output
    // according to which case translation mode we are in:
@@ -699,8 +770,8 @@
    ++m_out;
 }
 
-template <class OutputIterator, class Results, class traits>
-void basic_regex_formatter<OutputIterator, Results, traits>::put(const sub_match_type& sub)
+template <class OutputIterator, class Results, class traits, class ForwardIter>
+void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::put(const sub_match_type& sub)
 {
    typedef typename sub_match_type::iterator iterator_type;
    iterator_type i = sub.first;
@@ -738,10 +809,10 @@
 #endif
 };
 
-template <class OutputIterator, class Iterator, class Alloc, class charT, class traits>
+template <class OutputIterator, class Iterator, class Alloc, class ForwardIter, class traits>
 OutputIterator regex_format_imp(OutputIterator out,
                           const match_results<Iterator, Alloc>& m,
- const charT* p1, const charT* p2,
+ ForwardIter p1, ForwardIter p2,
                           match_flag_type flags,
                           const traits& t
                          )
@@ -754,57 +825,289 @@
    re_detail::basic_regex_formatter<
       OutputIterator,
       match_results<Iterator, Alloc>,
- traits > f(out, m, t);
+ traits, ForwardIter> f(out, m, t);
    return f.format(p1, p2, flags);
 }
 
+#ifndef BOOST_NO_SFINAE
 
-} // namespace re_detail
+BOOST_MPL_HAS_XXX_TRAIT_DEF(const_iterator)
 
-template <class OutputIterator, class Iterator, class charT>
-OutputIterator regex_format(OutputIterator out,
- const match_results<Iterator>& m,
- const charT* fmt,
- match_flag_type flags = format_all
- )
+struct any_type { any_type(...); };
+typedef char no_type;
+typedef char (&unary_type)[2];
+typedef char (&binary_type)[3];
+typedef char (&ternary_type)[4];
+
+no_type check_is_formatter(unary_type, binary_type, ternary_type);
+template<typename T>
+unary_type check_is_formatter(T const &, binary_type, ternary_type);
+template<typename T>
+binary_type check_is_formatter(unary_type, T const &, ternary_type);
+template<typename T, typename U>
+binary_type check_is_formatter(T const &, U const &, ternary_type);
+template<typename T>
+ternary_type check_is_formatter(unary_type, binary_type, T const &);
+template<typename T, typename U>
+ternary_type check_is_formatter(T const &, binary_type, U const &);
+template<typename T, typename U>
+ternary_type check_is_formatter(unary_type, T const &, U const &);
+template<typename T, typename U, typename V>
+ternary_type check_is_formatter(T const &, U const &, V const &);
+
+struct unary_binary_ternary
 {
- re_detail::trivial_format_traits<charT> traits;
- return re_detail::regex_format_imp(out, m, fmt, fmt + traits.length(fmt), flags, traits);
-}
+ typedef unary_type (*unary_fun)(any_type);
+ typedef binary_type (*binary_fun)(any_type, any_type);
+ typedef ternary_type (*ternary_fun)(any_type, any_type, any_type);
+ operator unary_fun();
+ operator binary_fun();
+ operator ternary_fun();
+};
+
+template<typename Formatter, bool IsFunction = boost::is_function<Formatter>::value>
+struct formatter_wrapper
+ : Formatter
+ , unary_binary_ternary
+{
+ formatter_wrapper(){}
+};
+
+template<typename Formatter>
+struct formatter_wrapper<Formatter, true>
+ : unary_binary_ternary
+{
+ operator Formatter *();
+};
+
+template<typename Formatter>
+struct formatter_wrapper<Formatter *, false>
+ : unary_binary_ternary
+{
+ operator Formatter *();
+};
+
+template <class F, class M, class O>
+struct format_traits_imp
+{
+private:
+ //
+ // F must be a pointer, a function, or a class with a function call operator:
+ //
+ BOOST_STATIC_ASSERT((::boost::is_pointer<F>::value || ::boost::is_function<F>::value || ::boost::is_class<F>::value));
+ static formatter_wrapper<F> f;
+ static M m;
+ static O out;
+ static boost::regex_constants::match_flag_type flags;
+public:
+ BOOST_STATIC_CONSTANT(int, value = sizeof(check_is_formatter(f(m), f(m, out), f(m, out, flags))));
+};
+
+template <class F, class M, class O>
+struct format_traits
+{
+public:
+ //
+ // Type is mpl::int_<N> where N is one of:
+ //
+ // 0 : F is a pointer to a presumably null-terminated string.
+ // 1 : F is a character-container such as a std::string.
+ // 2 : F is a Unary Functor.
+ // 3 : F is a Binary Functor.
+ // 4 : F is a Ternary Functor.
+ //
+ typedef typename boost::mpl::if_<
+ boost::mpl::and_<boost::is_pointer<F>, boost::mpl::not_<boost::is_function<typename boost::remove_pointer<F>::type> > >,
+ boost::mpl::int_<0>,
+ typename boost::mpl::if_<
+ has_const_iterator<F>,
+ boost::mpl::int_<1>,
+ boost::mpl::int_<format_traits_imp<F, M, O>::value>
+ >::type
+ >::type type;
+ //
+ // This static assertion will fail if the functor passed does not accept
+ // the same type of arguments passed.
+ //
+ BOOST_STATIC_ASSERT( boost::is_class<F>::value && !has_const_iterator<F>::value ? (type::value > 1) : true);
+};
+
+#else // BOOST_NO_SFINAE
+
+template <class F, class M, class O>
+struct format_traits
+{
+public:
+ //
+ // Type is mpl::int_<N> where N is one of:
+ //
+ // 0 : F is a pointer to a presumably null-terminated string.
+ // 1 : F is a character-container such as a std::string.
+ //
+ // Other options such as F being a Functor are not supported without
+ // SFINAE support.
+ //
+ typedef typename boost::mpl::if_<
+ boost::is_pointer<F>,
+ boost::mpl::int_<0>,
+ boost::mpl::int_<1>
+ >::type type;
+};
+
+#endif // BOOST_NO_SFINAE
+
+template <class Base, class Match>
+struct format_functor3
+{
+ format_functor3(Base b) : func(b) {}
+ template <class OutputIter>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f)
+ {
+ return func(m, i, f);
+ }
+ template <class OutputIter, class Traits>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits&)
+ {
+ return (*this)(m, i, f);
+ }
+private:
+ Base func;
+ format_functor3(const format_functor3&);
+ format_functor3& operator=(const format_functor3&);
+};
+
+template <class Base, class Match>
+struct format_functor2
+{
+ format_functor2(Base b) : func(b) {}
+ template <class OutputIter>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type /*f*/)
+ {
+ return func(m, i);
+ }
+ template <class OutputIter, class Traits>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits&)
+ {
+ return (*this)(m, i, f);
+ }
+private:
+ Base func;
+ format_functor2(const format_functor2&);
+ format_functor2& operator=(const format_functor2&);
+};
+
+template <class Base, class Match>
+struct format_functor1
+{
+ format_functor1(Base b) : func(b) {}
+
+ template <class S, class OutputIter>
+ OutputIter do_format_string(const S& s, OutputIter i)
+ {
+ return re_detail::copy(s.begin(), s.end(), i);
+ }
+ template <class S, class OutputIter>
+ inline OutputIter do_format_string(const S* s, OutputIter i)
+ {
+ while(s && *s)
+ {
+ *i = *s;
+ ++i;
+ ++s;
+ }
+ return i;
+ }
+ template <class OutputIter>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type /*f*/)
+ {
+ return do_format_string(func(m), i);
+ }
+ template <class OutputIter, class Traits>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits&)
+ {
+ return (*this)(m, i, f);
+ }
+private:
+ Base func;
+ format_functor1(const format_functor1&);
+ format_functor1& operator=(const format_functor1&);
+};
+
+template <class charT, class Match, class Traits>
+struct format_functor_c_string
+{
+ format_functor_c_string(const charT* ps) : func(ps) {}
+
+ template <class OutputIter>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits& t = Traits())
+ {
+ typedef typename Match::char_type char_type;
+ const charT* end = func;
+ while(*end) ++end;
+ return regex_format_imp(i, m, func, end, f, t);
+ }
+private:
+ const charT* func;
+ format_functor_c_string(const format_functor_c_string&);
+ format_functor_c_string& operator=(const format_functor_c_string&);
+};
 
-template <class OutputIterator, class Iterator, class charT>
-OutputIterator regex_format(OutputIterator out,
- const match_results<Iterator>& m,
- const std::basic_string<charT>& fmt,
+template <class Container, class Match, class Traits>
+struct format_functor_container
+{
+ format_functor_container(const Container& c) : func(c) {}
+
+ template <class OutputIter>
+ OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits& t = Traits())
+ {
+ typedef typename Match::char_type char_type;
+ return re_detail::regex_format_imp(i, m, func.begin(), func.end(), f, t);
+ }
+private:
+ const Container& func;
+ format_functor_container(const format_functor_container&);
+ format_functor_container& operator=(const format_functor_container&);
+};
+
+template <class Func, class Match, class OutputIterator, class Traits = re_detail::trivial_format_traits<typename Match::char_type> >
+struct compute_functor_type
+{
+ typedef typename format_traits<Func, Match, OutputIterator>::type tag;
+ typedef typename boost::remove_cv< typename boost::remove_pointer<Func>::type>::type maybe_char_type;
+
+ typedef typename mpl::if_<
+ ::boost::is_same<tag, mpl::int_<0> >, format_functor_c_string<maybe_char_type, Match, Traits>,
+ typename mpl::if_<
+ ::boost::is_same<tag, mpl::int_<1> >, format_functor_container<Func, Match, Traits>,
+ typename mpl::if_<
+ ::boost::is_same<tag, mpl::int_<2> >, format_functor1<Func, Match>,
+ typename mpl::if_<
+ ::boost::is_same<tag, mpl::int_<3> >, format_functor2<Func, Match>,
+ format_functor3<Func, Match>
+ >::type
+ >::type
+ >::type
+ >::type type;
+};
+
+} // namespace re_detail
+
+template <class OutputIterator, class Iterator, class Allocator, class Functor>
+inline OutputIterator regex_format(OutputIterator out,
+ const match_results<Iterator, Allocator>& m,
+ Functor fmt,
                           match_flag_type flags = format_all
                          )
 {
- re_detail::trivial_format_traits<charT> traits;
- return re_detail::regex_format_imp(out, m, fmt.data(), fmt.data() + fmt.size(), flags, traits);
-}
-
-template <class Iterator, class charT>
-std::basic_string<charT> regex_format(const match_results<Iterator>& m,
- const charT* fmt,
- match_flag_type flags = format_all)
-{
- std::basic_string<charT> result;
- re_detail::string_out_iterator<std::basic_string<charT> > i(result);
- re_detail::trivial_format_traits<charT> traits;
- re_detail::regex_format_imp(i, m, fmt, fmt + traits.length(fmt), flags, traits);
- return result;
+ return m.format(out, fmt, flags);
 }
 
-template <class Iterator, class charT>
-std::basic_string<charT> regex_format(const match_results<Iterator>& m,
- const std::basic_string<charT>& fmt,
+template <class Iterator, class Allocator, class Functor>
+inline std::basic_string<typename match_results<Iterator, Allocator>::char_type> regex_format(const match_results<Iterator, Allocator>& m,
+ Functor fmt,
                                       match_flag_type flags = format_all)
 {
- std::basic_string<charT> result;
- re_detail::string_out_iterator<std::basic_string<charT> > i(result);
- re_detail::trivial_format_traits<charT> traits;
- re_detail::regex_format_imp(i, m, fmt.data(), fmt.data() + fmt.size(), flags, traits);
- return result;
+ return m.format(fmt, flags);
 }
 
 #ifdef BOOST_MSVC

Modified: branches/release/boost/regex/v4/regex_replace.hpp
==============================================================================
--- branches/release/boost/regex/v4/regex_replace.hpp (original)
+++ branches/release/boost/regex/v4/regex_replace.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (c) 1998-2002
+ * Copyright (c) 1998-2009
  * John Maddock
  *
  * Use, modification and distribution are subject to the
@@ -35,12 +35,12 @@
 #pragma warning(pop)
 #endif
 
-template <class OutputIterator, class BidirectionalIterator, class traits, class charT>
+template <class OutputIterator, class BidirectionalIterator, class traits, class charT, class Formatter>
 OutputIterator regex_replace(OutputIterator out,
                          BidirectionalIterator first,
                          BidirectionalIterator last,
                          const basic_regex<charT, traits>& e,
- const charT* fmt,
+ Formatter fmt,
                          match_flag_type flags = match_default)
 {
    regex_iterator<BidirectionalIterator, charT, traits> i(first, last, e, flags);
@@ -69,21 +69,10 @@
    return out;
 }
 
-template <class OutputIterator, class Iterator, class traits, class charT>
-inline OutputIterator regex_replace(OutputIterator out,
- Iterator first,
- Iterator last,
- const basic_regex<charT, traits>& e,
- const std::basic_string<charT>& fmt,
- match_flag_type flags = match_default)
-{
- return regex_replace(out, first, last, e, fmt.c_str(), flags);
-}
-
-template <class traits, class charT>
+template <class traits, class charT, class Formatter>
 std::basic_string<charT> regex_replace(const std::basic_string<charT>& s,
                          const basic_regex<charT, traits>& e,
- const charT* fmt,
+ Formatter fmt,
                          match_flag_type flags = match_default)
 {
    std::basic_string<charT> result;
@@ -92,18 +81,6 @@
    return result;
 }
 
-template <class traits, class charT>
-std::basic_string<charT> regex_replace(const std::basic_string<charT>& s,
- const basic_regex<charT, traits>& e,
- const std::basic_string<charT>& fmt,
- match_flag_type flags = match_default)
-{
- std::basic_string<charT> result;
- re_detail::string_out_iterator<std::basic_string<charT> > i(result);
- regex_replace(i, s.begin(), s.end(), e, fmt.c_str(), flags);
- return result;
-}
-
 #ifdef BOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable: 4103)

Modified: branches/release/boost/regex/v4/regex_traits_defaults.hpp
==============================================================================
--- branches/release/boost/regex/v4/regex_traits_defaults.hpp (original)
+++ branches/release/boost/regex/v4/regex_traits_defaults.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -322,7 +322,7 @@
 {
 #ifdef BOOST_MSVC
 # pragma warning(push)
-# pragma warning(disable:4309)
+# pragma warning(disable:4309 4245)
 #endif
    static const charT e1[] = { '(', '?', '>', '\x0D', '\x0A', '?',
       '|', '[', '\x0A', '\x0B', '\x0C', '\x85', '\\', 'x', '{', '2', '0', '2', '8', '}',

Modified: branches/release/boost/regex/v4/u32regex_iterator.hpp
==============================================================================
--- branches/release/boost/regex/v4/u32regex_iterator.hpp (original)
+++ branches/release/boost/regex/v4/u32regex_iterator.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -178,7 +178,7 @@
    typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
    return u32regex_iterator<iter_type>(p.begin(), p.end(), e, m);
 }
-inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UnicodeString& s, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
+inline u32regex_iterator<const UChar*> make_u32regex_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
 {
    return u32regex_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, m);
 }

Modified: branches/release/boost/regex/v4/u32regex_token_iterator.hpp
==============================================================================
--- branches/release/boost/regex/v4/u32regex_token_iterator.hpp (original)
+++ branches/release/boost/regex/v4/u32regex_token_iterator.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -294,7 +294,7 @@
    typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
    return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);
 }
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
 {
    return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
 }
@@ -327,7 +327,7 @@
    return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);
 }
 template <std::size_t N>
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
 {
    return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
 }
@@ -356,7 +356,7 @@
    typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
    return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);
 }
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
 {
    return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
 }

Modified: branches/release/libs/regex/build/Jamfile.v2
==============================================================================
--- branches/release/libs/regex/build/Jamfile.v2 (original)
+++ branches/release/libs/regex/build/Jamfile.v2 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -192,11 +192,19 @@
 if $(gHAS_ICU)
 {
    BOOST_REGEX_ICU_OPTS = "<target-os>freebsd:<include>/usr/local/include" ;
- ICU_SEARCH_OPTS = "<target-os>freebsd:<search>/$(ICU_PATH)/lib" ;
+ ICU_SEARCH_OPTS = "<target-os>freebsd:<search>$(ICU_PATH)/lib" ;
    BOOST_REGEX_ICU_OPTS += "<define>BOOST_HAS_ICU=1" ;
+ BOOST_REGEX_ICU_OPTS += "$(gICU_LIBS)" ;
    
    if $(ICU_PATH)
    {
+ # If ICU_PATH is specified on the command line, then it's
+ # relative to the current directory, while paths specified
+ # in a Jamfile are relative to that Jamfile. So, to
+ # avoid confusing the user if he's not running from
+ # libs/regex/build, explicitly root this.
+ ICU_PATH = [ path.native
+ [ path.root [ path.make $(ICU_PATH) ] [ path.pwd ] ] ] ;
       if $(ICU_PATH) != "/usr" && $(ICU_PATH) != "/usr/local"
       {
          BOOST_REGEX_ICU_OPTS += "<include>$(ICU_PATH)/include" ;

Modified: branches/release/libs/regex/doc/history.qbk
==============================================================================
--- branches/release/libs/regex/doc/history.qbk (original)
+++ branches/release/libs/regex/doc/history.qbk 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -8,6 +8,27 @@
 
 [section:history History]
 
+New issues should be submitted at [@http:svn.boost.org svn.boost.org] - don't forget to include your
+email address in the ticket!
+
+Currently open issues can be viewed [@https://svn.boost.org/trac/boost/query?status=assigned&status=new&status=reopened&component=regex&order=priority&col=id&col=summary&col=status&col=type&col=milestone&col=component here].
+
+All issues including closed ones can be viewed [@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=regex&order=priority&col=id&col=summary&col=status&col=type&col=milestone&col=component here].
+
+[h4 Boost 1.42]
+
+* Added support for Functors rather than strings as format expressions.
+* Improved error reporting when throwing exceptions to include better more relevant information.
+* Fixed tickets
+[@https://svn.boost.org/trac/boost/ticket/2802 #2802],
+[@https://svn.boost.org/trac/boost/ticket/3425 #3425],
+[@https://svn.boost.org/trac/boost/ticket/3507 #3507],
+[@https://svn.boost.org/trac/boost/ticket/3546 #3546],
+[@https://svn.boost.org/trac/boost/ticket/3631 #3631],
+[@https://svn.boost.org/trac/boost/ticket/3632 #3632],
+[@https://svn.boost.org/trac/boost/ticket/3715 #3715],
+[@https://svn.boost.org/trac/boost/ticket/3718 #3718]
+
 [h4 Boost 1.40]
 
 * Added support for many Perl 5.10 syntax elements including named

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Background Information</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -47,7 +47,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Acknowledgements</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -49,13 +49,13 @@
       </p>
 <p>
         The following people have all contributed useful comments or fixes: Dave
- Abrahams, Mike Allison, Edan Ayal, Jayashree Balasubramanian, Jan Bölsche,
+ Abrahams, Mike Allison, Edan Ayal, Jayashree Balasubramanian, Jan B&#246;lsche,
         Beman Dawes, Paul Baxter, David Bergman, David Dennerline, Edward Diener,
         Peter Dimov, Robert Dunn, Fabio Forno, Tobias Gabrielsson, Rob Gillen, Marc
         Gregoire, Chris Hecker, Nick Hodapp, Jesse Jones, Martin Jost, Boris Krasnovskiy,
         Jan Hermelink, Max Leung, Wei-hao Lin, Jens Maurer, Richard Peters, Heiko
         Schmidt, Jason Shirk, Gerald Slacik, Scobie Smith, Mike Smyth, Alexander
- Sokolovsky, Hervé Poirier, Michael Raykh, Marc Recht, Scott VanCamp, Bruno
+ Sokolovsky, Herv&#233; Poirier, Michael Raykh, Marc Recht, Scott VanCamp, Bruno
         Voigt, Alexey Voinov, Jerry Waldorf, Rob Ward, Lealon Watts, John Wismar,
         Thomas Witt and Yuval Yosef.
       </p>
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/examples.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/examples.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/examples.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Test and Example Programs</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -28,7 +28,7 @@
       Example Programs</a>
 </h3></div></div></div>
 <a name="boost_regex.background_information.examples.test_programs"></a><h5>
-<a name="id805166"></a>
+<a name="id904808"></a>
         <a class="link" href="examples.html#boost_regex.background_information.examples.test_programs">Test
         Programs</a>
       </h5>
@@ -107,7 +107,7 @@
         Files: captures_test.cpp.
       </p>
 <a name="boost_regex.background_information.examples.example_programs"></a><h5>
-<a name="id805469"></a>
+<a name="id905111"></a>
         <a class="link" href="examples.html#boost_regex.background_information.examples.example_programs">Example
         programs</a>
       </h5>
@@ -133,7 +133,7 @@
         Files: regex_timer.cpp.
       </p>
 <a name="boost_regex.background_information.examples.code_snippets"></a><h5>
-<a name="id805528"></a>
+<a name="id905170"></a>
         <a class="link" href="examples.html#boost_regex.background_information.examples.code_snippets">Code
         snippets</a>
       </h5>
@@ -217,7 +217,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/faq.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/faq.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/faq.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>FAQ</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -141,7 +141,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/futher.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/futher.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/futher.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>References and Further Information</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -62,7 +62,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/headers.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/headers.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/headers.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Headers</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -40,7 +40,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/history.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/history.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/history.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>History</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -25,8 +25,42 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_regex.background_information.history"></a><a class="link" href="history.html" title="History"> History</a>
 </h3></div></div></div>
+<p>
+ New issues should be submitted at svn.boost.org
+ - don't forget to include your email address in the ticket!
+ </p>
+<p>
+ Currently open issues can be viewed here.
+ </p>
+<p>
+ All issues including closed ones can be viewed here.
+ </p>
+<a name="boost_regex.background_information.history.boost_1_42"></a><h5>
+<a name="id906684"></a>
+ <a class="link" href="history.html#boost_regex.background_information.history.boost_1_42">Boost
+ 1.42</a>
+ </h5>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Added support for Functors rather than strings as format expressions.
+ </li>
+<li>
+ Improved error reporting when throwing exceptions to include better more
+ relevant information.
+ </li>
+<li>
+ Fixed tickets #2802,
+ #3425,
+ #3507,
+ #3546,
+ #3631,
+ #3632,
+ #3715,
+ #3718
+</li>
+</ul></div>
 <a name="boost_regex.background_information.history.boost_1_40"></a><h5>
-<a name="id807313"></a>
+<a name="id906750"></a>
         <a class="link" href="history.html#boost_regex.background_information.history.boost_1_40">Boost
         1.40</a>
       </h5>
@@ -35,7 +69,7 @@
           branch resets and recursive regular expressions.
         </li></ul></div>
 <a name="boost_regex.background_information.history.boost_1_38"></a><h5>
-<a name="id807333"></a>
+<a name="id906771"></a>
         <a class="link" href="history.html#boost_regex.background_information.history.boost_1_38">Boost
         1.38</a>
       </h5>
@@ -62,7 +96,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_34"></a><h5>
-<a name="id807411"></a>
+<a name="id908196"></a>
         <a class="link" href="history.html#boost_regex.background_information.history.boost_1_34">Boost
         1.34</a>
       </h5>
@@ -85,7 +119,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_33_1"></a><h5>
-<a name="id807442"></a>
+<a name="id908227"></a>
         <a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_1">Boost
         1.33.1</a>
       </h5>
@@ -155,7 +189,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_33_0"></a><h5>
-<a name="id807522"></a>
+<a name="id908306"></a>
         <a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_0">Boost
         1.33.0</a>
       </h5>
@@ -210,7 +244,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_32_1"></a><h5>
-<a name="id807580"></a>
+<a name="id908365"></a>
         <a class="link" href="history.html#boost_regex.background_information.history.boost_1_32_1">Boost
         1.32.1</a>
       </h5>
@@ -218,7 +252,7 @@
           Fixed bug in partial matches of bounded repeats of '.'.
         </li></ul></div>
 <a name="boost_regex.background_information.history.boost_1_31_0"></a><h5>
-<a name="id807601"></a>
+<a name="id908386"></a>
         <a class="link" href="history.html#boost_regex.background_information.history.boost_1_31_0">Boost
         1.31.0</a>
       </h5>
@@ -256,7 +290,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/locale.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/locale.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/locale.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Localization</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -58,7 +58,7 @@
         There are three separate localization mechanisms supported by Boost.Regex:
       </p>
 <a name="boost_regex.background_information.locale.win32_localization_model_"></a><h5>
-<a name="id802331"></a>
+<a name="id900902"></a>
         <a class="link" href="locale.html#boost_regex.background_information.locale.win32_localization_model_">Win32
         localization model.</a>
       </h5>
@@ -90,7 +90,7 @@
         are treated as "unknown" graphic characters.
       </p>
 <a name="boost_regex.background_information.locale.c_localization_model_"></a><h5>
-<a name="id802486"></a>
+<a name="id901057"></a>
         <a class="link" href="locale.html#boost_regex.background_information.locale.c_localization_model_">C
         localization model.</a>
       </h5>
@@ -114,7 +114,7 @@
         libraries including version 1 of this library.
       </p>
 <a name="boost_regex.background_information.locale.c___localization_model_"></a><h5>
-<a name="id802554"></a>
+<a name="id901125"></a>
         <a class="link" href="locale.html#boost_regex.background_information.locale.c___localization_model_">C++
         localization model.</a>
       </h5>
@@ -151,7 +151,7 @@
         in your code. The best way to ensure this is to add the #define to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
       </p>
 <a name="boost_regex.background_information.locale.providing_a_message_catalogue"></a><h5>
-<a name="id802855"></a>
+<a name="id902144"></a>
         <a class="link" href="locale.html#boost_regex.background_information.locale.providing_a_message_catalogue">Providing
         a message catalogue</a>
       </h5>
@@ -1303,9 +1303,9 @@
                 "Unmatched \{"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1323,9 +1323,9 @@
                 "Invalid content of \{\}"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1343,9 +1343,9 @@
                 "Invalid range end"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1363,9 +1363,9 @@
                 "Memory exhausted"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1383,9 +1383,9 @@
                 "Invalid preceding regular expression"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1403,9 +1403,9 @@
                 "Premature end of regular expression"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1423,9 +1423,9 @@
                 "Regular expression too big"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1443,9 +1443,9 @@
                 "Unmatched ) or \)"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1463,9 +1463,9 @@
                 "Empty expression"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -1483,9 +1483,9 @@
                 "Unknown error"
               </p>
               </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
+<td class="auto-generated">&#160;</td>
 </tr>
 </tbody>
 </table></div>
@@ -1775,7 +1775,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/performance.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/performance.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/performance.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Performance</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -46,7 +46,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/redist.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/redist.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/redist.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Redistributables</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -47,7 +47,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/standards.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/standards.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/standards.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Standards Conformance</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -28,7 +28,7 @@
       Conformance</a>
 </h3></div></div></div>
 <a name="boost_regex.background_information.standards.c__"></a><h5>
-<a name="id806454"></a>
+<a name="id905799"></a>
         <a class="link" href="standards.html#boost_regex.background_information.standards.c__">C++</a>
       </h5>
 <p>
@@ -36,7 +36,7 @@
         Report on C++ Library Extensions</a>.
       </p>
 <a name="boost_regex.background_information.standards.ecmascript___javascript"></a><h5>
-<a name="id806475"></a>
+<a name="id905820"></a>
         <a class="link" href="standards.html#boost_regex.background_information.standards.ecmascript___javascript">ECMAScript
         / JavaScript</a>
       </h5>
@@ -49,7 +49,7 @@
         rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.
       </p>
 <a name="boost_regex.background_information.standards.perl"></a><h5>
-<a name="id806496"></a>
+<a name="id905841"></a>
         <a class="link" href="standards.html#boost_regex.background_information.standards.perl">Perl</a>
       </h5>
 <p>
@@ -62,7 +62,7 @@
         (??{code}) Not implementable in a compiled strongly typed language.
       </p>
 <a name="boost_regex.background_information.standards.posix"></a><h5>
-<a name="id806520"></a>
+<a name="id905865"></a>
         <a class="link" href="standards.html#boost_regex.background_information.standards.posix">POSIX</a>
       </h5>
 <p>
@@ -82,7 +82,7 @@
         a custom traits class.
       </p>
 <a name="boost_regex.background_information.standards.unicode"></a><h5>
-<a name="id806544"></a>
+<a name="id905889"></a>
         <a class="link" href="standards.html#boost_regex.background_information.standards.unicode">Unicode</a>
       </h5>
 <p>
@@ -209,7 +209,7 @@
               <p>
                 Supported, note that at this level, case transformations are 1:1,
                 many to many case folding operations are not supported (for example
- "ß" to "SS").
+ "&#223;" to "SS").
               </p>
               </td>
 </tr>
@@ -296,7 +296,7 @@
                 Not supported.
               </p>
               </td>
-<td class="auto-generated"> </td>
+<td class="auto-generated">&#160;</td>
 </tr>
 <tr>
 <td>
@@ -549,7 +549,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/background_information/thread_safety.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/background_information/thread_safety.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/background_information/thread_safety.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Thread Safety</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -71,7 +71,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/captures.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/captures.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/captures.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Understanding Marked Sub-Expressions and Captures</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -35,7 +35,7 @@
       accessed.
     </p>
 <a name="boost_regex.captures.marked_sub_expressions"></a><h5>
-<a name="id648883"></a>
+<a name="id747808"></a>
       <a class="link" href="captures.html#boost_regex.captures.marked_sub_expressions">Marked sub-expressions</a>
     </h5>
 <p>
@@ -218,7 +218,7 @@
       output stream.
     </p>
 <a name="boost_regex.captures.unmatched_sub_expressions"></a><h5>
-<a name="id649339"></a>
+<a name="id748264"></a>
       <a class="link" href="captures.html#boost_regex.captures.unmatched_sub_expressions">Unmatched Sub-Expressions</a>
     </h5>
 <p>
@@ -231,7 +231,7 @@
       you can determine which sub-expressions matched by accessing the <code class="computeroutput"><span class="identifier">sub_match</span><span class="special">::</span><span class="identifier">matched</span></code> data member.
     </p>
 <a name="boost_regex.captures.repeated_captures"></a><h5>
-<a name="id649379"></a>
+<a name="id748303"></a>
       <a class="link" href="captures.html#boost_regex.captures.repeated_captures">Repeated Captures</a>
     </h5>
 <p>
@@ -369,7 +369,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/configuration.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/configuration.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/configuration.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Configuration</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -37,7 +37,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/configuration/algorithm.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/configuration/algorithm.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/configuration/algorithm.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Algorithm Selection</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -79,7 +79,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/configuration/compiler.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/configuration/compiler.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/configuration/compiler.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Compiler Setup</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -36,7 +36,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/configuration/linkage.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/configuration/linkage.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/configuration/linkage.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Linkage Options</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -77,7 +77,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/configuration/locale.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/configuration/locale.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/configuration/locale.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Locale and traits class selection</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -95,7 +95,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/configuration/tuning.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/configuration/tuning.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/configuration/tuning.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Algorithm Tuning</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -140,7 +140,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/format.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/format.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/format.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Search and Replace Format String Syntax</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -48,7 +48,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Boost-Extended Format String Syntax</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -32,7 +32,7 @@
         '$', '\', '(', ')', '?', and ':'.
       </p>
 <a name="boost_regex.format.boost_format_syntax.grouping"></a><h5>
-<a name="id670774"></a>
+<a name="id769398"></a>
         <a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.grouping">Grouping</a>
       </h5>
 <p>
@@ -40,7 +40,7 @@
         you want a to output literal parenthesis.
       </p>
 <a name="boost_regex.format.boost_format_syntax.conditionals"></a><h5>
-<a name="id670790"></a>
+<a name="id769414"></a>
         <a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.conditionals">Conditionals</a>
       </h5>
 <p>
@@ -79,7 +79,7 @@
         ?{NAME}true-expression:false-expression
       </p>
 <a name="boost_regex.format.boost_format_syntax.placeholder_sequences"></a><h5>
-<a name="id670843"></a>
+<a name="id769467"></a>
         <a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.placeholder_sequences">Placeholder
         Sequences</a>
       </h5>
@@ -319,7 +319,7 @@
         as a literal.
       </p>
 <a name="boost_regex.format.boost_format_syntax.escape_sequences"></a><h5>
-<a name="id671186"></a>
+<a name="id769810"></a>
         <a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.escape_sequences">Escape
         Sequences</a>
       </h5>
@@ -547,7 +547,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/format/perl_format.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/format/perl_format.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/format/perl_format.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Perl Format String Syntax</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -489,7 +489,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/format/sed_format.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/format/sed_format.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/format/sed_format.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Sed Format String Syntax</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -235,7 +235,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/install.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/install.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/install.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Building and Installing the Library</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -49,7 +49,7 @@
       file before you can use it, instructions for specific platforms are as follows:
     </p>
 <a name="boost_regex.install.building_with_bjam"></a><h5>
-<a name="id646143"></a>
+<a name="id744786"></a>
       <a class="link" href="install.html#boost_regex.install.building_with_bjam">Building with bjam</a>
     </h5>
 <p>
@@ -58,7 +58,7 @@
       started guide</a> for more information.
     </p>
 <a name="boost_regex.install.building_with_unicode_and_icu_support"></a><h5>
-<a name="id646167"></a>
+<a name="id744810"></a>
       <a class="link" href="install.html#boost_regex.install.building_with_unicode_and_icu_support">Building
       With Unicode and ICU Support</a>
     </h5>
@@ -96,11 +96,11 @@
       ICU you are using is binary compatible with the toolset you use to build Boost.
     </p>
 <a name="boost_regex.install.building_via_makefiles"></a><h5>
-<a name="id646286"></a>
+<a name="id744929"></a>
       <a class="link" href="install.html#boost_regex.install.building_via_makefiles">Building via makefiles</a>
     </h5>
 <a name="boost_regex.install.borland_c___builder_"></a><h6>
-<a name="id646299"></a>
+<a name="id744942"></a>
       <a class="link" href="install.html#boost_regex.install.borland_c___builder_">Borland C++ Builder:</a>
     </h6>
 <div class="itemizedlist"><ul type="disc">
@@ -166,7 +166,7 @@
       a lot in compile times!
     </p>
 <a name="boost_regex.install.microsoft_visual_c___6__7__7_1_and_8"></a><h5>
-<a name="id646538"></a>
+<a name="id745181"></a>
       <a class="link" href="install.html#boost_regex.install.microsoft_visual_c___6__7__7_1_and_8">Microsoft
       Visual C++ 6, 7, 7.1 and 8</a>
     </h5>
@@ -253,7 +253,7 @@
       </li>
 </ul></div>
 <a name="boost_regex.install.gcc_2_95_and_later_"></a><h6>
-<a name="id646737"></a>
+<a name="id745380"></a>
       <a class="link" href="install.html#boost_regex.install.gcc_2_95_and_later_">GCC(2.95 and later)</a>
     </h6>
 <p>
@@ -302,7 +302,7 @@
       see the config library documentation.
     </p>
 <a name="boost_regex.install.sun_workshop_6_1"></a><h6>
-<a name="id646863"></a>
+<a name="id745506"></a>
       <a class="link" href="install.html#boost_regex.install.sun_workshop_6_1">Sun Workshop 6.1</a>
     </h6>
 <p>
@@ -347,7 +347,7 @@
       will build v9 variants of the regex library named libboost_regex_v9.a etc.
     </p>
 <a name="boost_regex.install.makefiles_for_other_compilers"></a><h6>
-<a name="id647007"></a>
+<a name="id745650"></a>
       <a class="link" href="install.html#boost_regex.install.makefiles_for_other_compilers">Makefiles
       for Other compilers</a>
     </h6>
@@ -358,7 +358,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/introduction_and_overview.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/introduction_and_overview.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/introduction_and_overview.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Introduction and Overview</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -201,7 +201,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/partial_matches.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/partial_matches.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/partial_matches.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Partial Matches</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -293,7 +293,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Reference</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -108,7 +108,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/bad_expression.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/bad_expression.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/bad_expression.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>bad_expression</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.bad_expression"></a><a class="link" href="bad_expression.html" title="bad_expression"> bad_expression</a>
 </h3></div></div></div>
 <a name="boost_regex.ref.bad_expression.synopsis"></a><h5>
-<a name="id754064"></a>
+<a name="id853592"></a>
         <a class="link" href="bad_expression.html#boost_regex.ref.bad_expression.synopsis">Synopsis</a>
       </h5>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pattern_except</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -54,7 +54,7 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.bad_expression.description"></a><h5>
-<a name="id754425"></a>
+<a name="id855049"></a>
         <a class="link" href="bad_expression.html#boost_regex.ref.bad_expression.description">Description</a>
       </h5>
 <pre class="programlisting"><span class="identifier">regex_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">error_type</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <span class="identifier">pos</span><span class="special">);</span>
@@ -89,7 +89,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/basic_regex.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/basic_regex.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/basic_regex.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>basic_regex</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.basic_regex"></a><a class="link" href="basic_regex.html" title="basic_regex"> basic_regex</a>
 </h3></div></div></div>
 <a name="boost_regex.ref.basic_regex.synopsis"></a><h5>
-<a name="id671530"></a>
+<a name="id770154"></a>
         <a class="link" href="basic_regex.html#boost_regex.ref.basic_regex.synopsis">Synopsis</a>
       </h5>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -244,7 +244,7 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.basic_regex.description"></a><h5>
-<a name="id676186"></a>
+<a name="id774673"></a>
         <a class="link" href="basic_regex.html#boost_regex.ref.basic_regex.description">Description</a>
       </h5>
 <p>
@@ -327,7 +327,7 @@
         <code class="computeroutput"><span class="identifier">basic_regex</span></code>.
       </p>
 <div class="table">
-<a name="id679189"></a><p class="title"><b>Table 1. basic_regex default construction postconditions</b></p>
+<a name="id777745"></a><p class="title"><b>Table&#160;1.&#160;basic_regex default construction postconditions</b></p>
 <div class="table-contents"><table class="table" summary="basic_regex default construction postconditions">
 <colgroup>
 <col>
@@ -407,7 +407,7 @@
         flags</a> specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id679487"></a><p class="title"><b>Table 2. Postconditions for basic_regex construction</b></p>
+<a name="id778042"></a><p class="title"><b>Table&#160;2.&#160;Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -512,7 +512,7 @@
         specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id679900"></a><p class="title"><b>Table 3. Postconditions for basic_regex construction</b></p>
+<a name="id778455"></a><p class="title"><b>Table&#160;3.&#160;Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -616,7 +616,7 @@
         according the option flags specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id680304"></a><p class="title"><b>Table 4. Postconditions for basic_regex construction</b></p>
+<a name="id778860"></a><p class="title"><b>Table&#160;4.&#160;Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -727,7 +727,7 @@
         flags</a> specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id680784"></a><p class="title"><b>Table 5. Postconditions for basic_regex construction</b></p>
+<a name="id779340"></a><p class="title"><b>Table&#160;5.&#160;Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -829,7 +829,7 @@
         flags</a> specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id681143"></a><p class="title"><b>Table 6. Postconditions for basic_regex construction</b></p>
+<a name="id779699"></a><p class="title"><b>Table&#160;6.&#160;Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -1043,7 +1043,7 @@
         in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id682659"></a><p class="title"><b>Table 7. Postconditions for basic_regex::assign</b></p>
+<a name="id781214"></a><p class="title"><b>Table&#160;7.&#160;Postconditions for basic_regex::assign</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex::assign">
 <colgroup>
 <col>
@@ -1319,7 +1319,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/concepts.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/concepts.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/concepts.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Concepts</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -36,7 +36,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>charT Requirements</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -258,7 +258,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Iterator Requirements</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -33,7 +33,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Traits Class Requirements</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -34,7 +34,7 @@
           Boost-specific enhanced interface.
         </p>
 <a name="boost_regex.ref.concepts.traits_concept.minimal_requirements_"></a><h5>
-<a name="id782143"></a>
+<a name="id881411"></a>
           <a class="link" href="traits_concept.html#boost_regex.ref.concepts.traits_concept.minimal_requirements_">Minimal
           requirements.</a>
         </h5>
@@ -381,7 +381,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.ref.concepts.traits_concept.additional_optional_requirements"></a><h5>
-<a name="id782758"></a>
+<a name="id882055"></a>
           <a class="link" href="traits_concept.html#boost_regex.ref.concepts.traits_concept.additional_optional_requirements">Additional
           Optional Requirements</a>
         </h5>
@@ -579,7 +579,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Deprecated Interfaces</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -39,7 +39,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>High Level Class RegEx (Deprecated)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -816,7 +816,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_format (Deprecated)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -34,7 +34,7 @@
           previous version of Boost.Regex and will not be further updated:
         </p>
 <a name="boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format"></a><h5>
-<a name="id783339"></a>
+<a name="id882577"></a>
           <a class="link" href="regex_format.html#boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format">Algorithm
           regex_format</a>
         </h5>
@@ -46,15 +46,10 @@
           string, <code class="computeroutput"><span class="identifier">regex_format</span></code> can
           be used for search and replace operations:
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
 <span class="identifier">OutputIterator</span> <span class="identifier">regex_format</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
                            <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">fmt</span><span class="special">,</span>
- <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
-<span class="identifier">OutputIterator</span> <span class="identifier">regex_format</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                            <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
 </pre>
 <p>
@@ -71,16 +66,10 @@
             form, depending upon your compilers capabilities
           </p></td></tr>
 </table></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">regex_format</span>
- <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">fmt</span><span class="special">,</span>
- <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">regex_format</span>
                                  <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                                  <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
 </pre>
 <p>
@@ -133,13 +122,14 @@
 <tr>
 <td>
                 <p>
- <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">fmt</span></code>
+ <code class="computeroutput"><span class="identifier">Formatter</span> <span class="identifier">fmt</span></code>
                 </p>
                 </td>
 <td>
                 <p>
- A format string that determines how the match is transformed into
- the new string.
+ Either a format string that determines how the match is transformed
+ into the new string, or a functor that computes the new string
+ from <span class="emphasis"><em>m</em></span> - see <a class="link" href="../match_results.html#boost_regex.match_results_format"><code class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;&gt;::</span><span class="identifier">format</span></code></a>.
                 </p>
                 </td>
 </tr>
@@ -167,7 +157,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_grep (Deprecated)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -362,7 +362,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_split (deprecated)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -149,7 +149,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/error_type.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/error_type.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/error_type.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>error_type</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.error_type"></a><a class="link" href="error_type.html" title="error_type"> error_type</a>
 </h3></div></div></div>
 <a name="boost_regex.ref.error_type.synopsis"></a><h5>
-<a name="id760997"></a>
+<a name="id861480"></a>
         <a class="link" href="error_type.html#boost_regex.ref.error_type.synopsis">Synopsis</a>
       </h5>
 <p>
@@ -57,7 +57,7 @@
 </span><span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.error_type.description"></a><h5>
-<a name="id761412"></a>
+<a name="id861895"></a>
         <a class="link" href="error_type.html#boost_regex.ref.error_type.description">Description</a>
       </h5>
 <p>
@@ -257,7 +257,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/match_flag_type.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/match_flag_type.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/match_flag_type.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>match_flag_type</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -69,7 +69,7 @@
 </span><span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.match_flag_type.description"></a><h5>
-<a name="id760446"></a>
+<a name="id859471"></a>
         <a class="link" href="match_flag_type.html#boost_regex.ref.match_flag_type.description">Description</a>
       </h5>
 <p>
@@ -478,7 +478,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/match_results.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/match_results.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/match_results.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>match_results</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.match_results"></a><a class="link" href="match_results.html" title="match_results"> match_results</a>
 </h3></div></div></div>
 <a name="boost_regex.ref.match_results.synopsis"></a><h5>
-<a name="id687993"></a>
+<a name="id785456"></a>
         <a class="link" href="match_results.html#boost_regex.ref.match_results.synopsis">Synopsis</a>
       </h5>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -132,11 +132,12 @@
    <span class="identifier">const_iterator</span> <a class="link" href="match_results.html#boost_regex.match_results.begin">begin</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
    <span class="identifier">const_iterator</span> <a class="link" href="match_results.html#boost_regex.match_results.end">end</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
    <span class="comment">// format:
-</span> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
+</span> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
    <span class="identifier">OutputIterator</span> <a class="link" href="match_results.html#boost_regex.match_results.format">format</a><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                         <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
- <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.format2">format</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
+ <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.format2">format</a><span class="special">(</span><span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                      <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
 
    <span class="identifier">allocator_type</span> <a class="link" href="match_results.html#boost_regex.match_results.get_allocator">get_allocator</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
@@ -166,7 +167,7 @@
          <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.match_results.description"></a><h5>
-<a name="id691227"></a>
+<a name="id788640"></a>
         <a class="link" href="match_results.html#boost_regex.ref.match_results.description">Description</a>
       </h5>
 <p>
@@ -558,18 +559,32 @@
       </p>
 <a name="boost_regex.match_results_format"></a><a name="boost_regex.match_results.format"></a><p>
       </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
 <span class="identifier">OutputIterator</span> <span class="identifier">format</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
- <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">);</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">);</span>
 </pre>
 <p>
         <span class="bold"><strong>Requires</strong></span>: The type <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
         conforms to the Output Iterator requirements (C++ std 24.1.2).
       </p>
 <p>
- <span class="bold"><strong>Effects</strong></span>: Copies the character sequence
- <code class="computeroutput"><span class="special">[</span><span class="identifier">fmt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">fmt</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span></code>
+ The type <code class="computeroutput"><span class="identifier">Formatter</span></code> must be
+ either a pointer to a null-terminated string of type <code class="computeroutput"><span class="identifier">char_type</span><span class="special">[]</span></code>, or be a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ (for example <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span></code>)
+ or be a unary, binary or ternary functor that computes the replacement string
+ from a function call: either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span></code>
+ which must return a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ to be used as the replacement text, or either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span>
+ <span class="identifier">out</span><span class="special">)</span></code>
+ or <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>, both of which write the replacement text
+ to <code class="computeroutput"><span class="special">*</span><span class="identifier">out</span></code>,
+ and then return the new OutputIterator position.
+ </p>
+<p>
+ <span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><span class="identifier">fmt</span></code>
+ is either a null-terminated string, or a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s,
+ then copies the character sequence <code class="computeroutput"><span class="special">[</span><span class="identifier">fmt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">fmt</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span></code>
         to <code class="computeroutput"><span class="identifier">OutputIterator</span></code> <span class="emphasis"><em>out</em></span>.
         For each format specifier or escape sequence in <span class="emphasis"><em>fmt</em></span>,
         replace that sequence with either the character(s) it represents, or the
@@ -579,6 +594,27 @@
         Chapter 15 part 5.4.11 String.prototype.replace.
       </p>
 <p>
+ If <code class="computeroutput"><span class="identifier">fmt</span></code> is a function object,
+ then depending on the number of arguments the function object accepts, it
+ will either:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Call <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span></code> and
+ copy the result to <code class="computeroutput"><span class="identifier">OutputIterator</span></code><span class="emphasis"><em>out</em></span>.
+ </li>
+<li>
+ Call <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span> <span class="identifier">out</span><span class="special">)</span></code>.
+ </li>
+<li>
+ Call <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
+ </li>
+</ul></div>
+<p>
+ In all cases the new position of the <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
+ is returned.
+ </p>
+<p>
         See the <a class="link" href="../format.html" title="Search and Replace Format String Syntax">format syntax guide for more information</a>.
       </p>
 <p>
@@ -586,18 +622,57 @@
       </p>
 <a name="boost_regex.match_results.format2"></a><p>
       </p>
-<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">format</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
- <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">);</span>
-</pre>
-<p>
- <span class="bold"><strong>Effects</strong></span>: Returns a copy of the string <span class="emphasis"><em>fmt</em></span>.
- For each format specifier or escape sequence in <span class="emphasis"><em>fmt</em></span>,
- replace that sequence with either the character(s) it represents, or the
- sequence of characters within <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> to which it refers. The bitmasks specified
- in flags determines what format specifiers or escape sequences are recognized,
- by default this is the format used by ECMA-262, ECMAScript Language Specification,
- Chapter 15 part 5.4.11 String.prototype.replace.
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
+<span class="identifier">string_type</span> <span class="identifier">format</span><span class="special">(</span><span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">);</span>
+</pre>
+<p>
+ <span class="bold"><strong>Requires</strong></span> The type <code class="computeroutput"><span class="identifier">Formatter</span></code>
+ must be either a pointer to a null-terminated string of type <code class="computeroutput"><span class="identifier">char_type</span><span class="special">[]</span></code>,
+ or be a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ (for example <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span></code>)
+ or be a unary, binary or ternary functor that computes the replacement string
+ from a function call: either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span></code>
+ which must return a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ to be used as the replacement text, or either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span>
+ <span class="identifier">out</span><span class="special">)</span></code>
+ or <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>, both of which write the replacement text
+ to <code class="computeroutput"><span class="special">*</span><span class="identifier">out</span></code>,
+ and then return the new OutputIterator position.
+ </p>
+<p>
+ <span class="bold"><strong>Effects</strong></span>: If <code class="computeroutput"><span class="identifier">fmt</span></code>
+ is either a null-terminated string, or a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s,
+ then copies the string <span class="emphasis"><em>fmt</em></span>: For each format specifier
+ or escape sequence in <span class="emphasis"><em>fmt</em></span>, replace that sequence with
+ either the character(s) it represents, or the sequence of characters within
+ <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
+ to which it refers. The bitmasks specified in flags determines what format
+ specifiers or escape sequences are recognized, by default this is the format
+ used by ECMA-262, ECMAScript Language Specification, Chapter 15 part 5.4.11
+ String.prototype.replace.
+ </p>
+<p>
+ If <code class="computeroutput"><span class="identifier">fmt</span></code> is a function object,
+ then depending on the number of arguments the function object accepts, it
+ will either:
       </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Call <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span></code> and
+ return the result.
+ </li>
+<li>
+ Call <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span> <span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">output</span><span class="special">-</span><span class="identifier">iterator</span><span class="special">)</span></code>, where <code class="computeroutput"><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">output</span><span class="special">-</span><span class="identifier">iterator</span></code>
+ is an unspecified OutputIterator type used to copy the output to the string
+ result.
+ </li>
+<li>
+ Call <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(*</span><span class="keyword">this</span><span class="special">,</span> <span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">output</span><span class="special">-</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>, where <code class="computeroutput"><span class="identifier">unspecified</span><span class="special">-</span><span class="identifier">output</span><span class="special">-</span><span class="identifier">iterator</span></code>
+ is an unspecified OutputIterator type used to copy the output to the string
+ result.
+ </li>
+</ul></div>
 <p>
         See the <a class="link" href="../format.html" title="Search and Replace Format String Syntax">format syntax guide for more information</a>.
       </p>
@@ -715,7 +790,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Interfacing With Non-Standard String Types</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -73,7 +73,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Working With Unicode and ICU String Types</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -40,7 +40,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Introduction to using Regex with ICU</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -62,7 +62,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Unicode Regular Expression Algorithms</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -43,7 +43,7 @@
             on to the "real" algorithm.
           </p>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match"></a><h5>
-<a name="id763376"></a>
+<a name="id864768"></a>
             <a class="link" href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match">u32regex_match</a>
           </h5>
 <p>
@@ -89,7 +89,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search"></a><h5>
-<a name="id763891"></a>
+<a name="id865283"></a>
             <a class="link" href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search">u32regex_search</a>
           </h5>
 <p>
@@ -128,7 +128,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace"></a><h5>
-<a name="id765992"></a>
+<a name="id865701"></a>
             <a class="link" href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace">u32regex_replace</a>
           </h5>
 <p>
@@ -166,7 +166,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Unicode Aware Regex Iterators</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -28,7 +28,7 @@
           Unicode Aware Regex Iterators</a>
 </h5></div></div></div>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator"></a><h5>
-<a name="id766310"></a>
+<a name="id866019"></a>
             <a class="link" href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator">u32regex_iterator</a>
           </h5>
 <p>
@@ -115,18 +115,18 @@
 <p>
             Calling
           </p>
-<pre class="programlisting">enumerate_currencies(" $100.23 or £198.12 ");</pre>
+<pre class="programlisting">enumerate_currencies(" $100.23 or &#163;198.12 ");</pre>
 <p>
             Yields the output:
           </p>
 <pre class="programlisting">$100.23
-£198.12
+&#163;198.12
 </pre>
 <p>
             Provided of course that the input is encoded as UTF-8.
           </p>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator"></a><h5>
-<a name="id767579"></a>
+<a name="id867380"></a>
             <a class="link" href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator">u32regex_token_iterator</a>
           </h5>
 <p>
@@ -309,7 +309,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Unicode regular expression types</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -118,7 +118,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Using Boost Regex With MFC Strings</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -42,7 +42,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Overloaded Algorithms For MFC String Types</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -34,7 +34,7 @@
             here they are anyway:
           </p>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match"></a><h5>
-<a name="id772430"></a>
+<a name="id872675"></a>
             <a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match">regex_match</a>
           </h5>
 <p>
@@ -82,7 +82,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_"></a><h5>
-<a name="id773088"></a>
+<a name="id873333"></a>
             <a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_">regex_match
             (second overload)</a>
           </h5>
@@ -110,7 +110,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search"></a><h5>
-<a name="id775582"></a>
+<a name="id873764"></a>
             <a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search">regex_search</a>
           </h5>
 <p>
@@ -149,7 +149,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_"></a><h5>
-<a name="id776118"></a>
+<a name="id874299"></a>
             <a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_">regex_search
             (second overload)</a>
           </h5>
@@ -164,7 +164,7 @@
             <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span></code>
           </p>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace"></a><h5>
-<a name="id776408"></a>
+<a name="id874589"></a>
             <a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace">regex_replace</a>
           </h5>
 <p>
@@ -214,7 +214,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Introduction to Boost.Regex and MFC Strings</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -51,7 +51,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Iterating Over the Matches Within An MFC String</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -32,7 +32,7 @@
             an MFC/ATL string to a <a class="link" href="../../regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> or <a class="link" href="../../regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a>:
           </p>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper"></a><h5>
-<a name="id777178"></a>
+<a name="id877545"></a>
             <a class="link" href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper">regex_iterator
             creation helper</a>
           </h5>
@@ -68,7 +68,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers"></a><h5>
-<a name="id778820"></a>
+<a name="id878093"></a>
             <a class="link" href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers">regex_token_iterator
             creation helpers</a>
           </h5>
@@ -136,7 +136,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Regular Expression Creation From an MFC String</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -43,7 +43,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Regex Types Used With MFC Strings</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -44,7 +44,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/posix.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/posix.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/posix.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>POSIX Compatible C API's</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -165,7 +165,7 @@
 <a name="regcomp"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regcomp"></a><h5>
-<a name="id780958"></a>
+<a name="id880232"></a>
         <a class="link" href="posix.html#boost_regex.ref.posix.regcomp">regcomp</a>
       </h5>
 <p>
@@ -379,7 +379,7 @@
 <a name="regerror"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regerror"></a><h5>
-<a name="id781469"></a>
+<a name="id880737"></a>
         <a class="link" href="posix.html#boost_regex.ref.posix.regerror">regerror</a>
       </h5>
 <p>
@@ -467,7 +467,7 @@
 <a name="regexec"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regexec"></a><h5>
-<a name="id781598"></a>
+<a name="id880866"></a>
         <a class="link" href="posix.html#boost_regex.ref.posix.regexec">regexec</a>
       </h5>
 <p>
@@ -537,7 +537,7 @@
 <a name="regfree"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regfree"></a><h5>
-<a name="id781709"></a>
+<a name="id880977"></a>
         <a class="link" href="posix.html#boost_regex.ref.posix.regfree">regfree</a>
       </h5>
 <p>
@@ -547,7 +547,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/regex_iterator.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/regex_iterator.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/regex_iterator.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_iterator</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -78,7 +78,7 @@
                           <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_flag_type</span> <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_iterator.description"></a><h5>
-<a name="id739152"></a>
+<a name="id837587"></a>
         <a class="link" href="regex_iterator.html#boost_regex.ref.regex_iterator.description">Description</a>
       </h5>
 <p>
@@ -436,7 +436,7 @@
         <span class="emphasis"><em>m</em></span>.
       </p>
 <a name="boost_regex.ref.regex_iterator.examples"></a><h5>
-<a name="id742537"></a>
+<a name="id842060"></a>
         <a class="link" href="regex_iterator.html#boost_regex.ref.regex_iterator.examples">Examples</a>
       </h5>
 <p>
@@ -537,7 +537,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/regex_match.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/regex_match.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/regex_match.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_match</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -80,7 +80,7 @@
                  <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_match.description"></a><h5>
-<a name="id722544"></a>
+<a name="id821847"></a>
         <a class="link" href="regex_match.html#boost_regex.ref.regex_match.description">Description</a>
       </h5>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
@@ -360,7 +360,7 @@
         <span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
       </p>
 <a name="boost_regex.ref.regex_match.examples"></a><h5>
-<a name="id724914"></a>
+<a name="id824218"></a>
         <a class="link" href="regex_match.html#boost_regex.ref.regex_match.examples">Examples</a>
       </h5>
 <p>
@@ -400,7 +400,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/regex_replace.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/regex_replace.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/regex_replace.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_replace</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -38,37 +38,40 @@
         set. If the flag <code class="computeroutput"><span class="identifier">format_first_only</span></code>
         is set then only the first occurrence is replaced rather than all occurrences.
       </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
 <span class="identifier">OutputIterator</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
                              <span class="identifier">BidirectionalIterator</span> <span class="identifier">first</span><span class="special">,</span>
                              <span class="identifier">BidirectionalIterator</span> <span class="identifier">last</span><span class="special">,</span>
                              <span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                              <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
 <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
                                   <span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                                   <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_replace.description"></a><h5>
-<a name="id733770"></a>
+<a name="id831198"></a>
         <a class="link" href="regex_replace.html#boost_regex.ref.regex_replace.description">Description</a>
       </h5>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
 <span class="identifier">OutputIterator</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
                              <span class="identifier">BidirectionalIterator</span> <span class="identifier">first</span><span class="special">,</span>
                              <span class="identifier">BidirectionalIterator</span> <span class="identifier">last</span><span class="special">,</span>
                              <span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                              <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <p>
         Enumerates all the occurences of expression <span class="emphasis"><em>e</em></span> in the
         sequence [first, last), replacing each occurence with the string that results
         by merging the match found with the format string <span class="emphasis"><em>fmt</em></span>,
- and copies the resulting string to <span class="emphasis"><em>out</em></span>.
+ and copies the resulting string to <span class="emphasis"><em>out</em></span>. In the case
+ that <span class="emphasis"><em>fmt</em></span> is a unary, binary or ternary function object,
+ then the character sequence generated by that object is copied unchanged
+ to the output when performing a substitution.
       </p>
 <p>
         If the flag <code class="computeroutput"><span class="identifier">format_no_copy</span></code>
@@ -86,6 +89,21 @@
         set in <span class="emphasis"><em>flags</em></span>: see <a class="link" href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>.
       </p>
 <p>
+ <span class="bold"><strong>Requires</strong></span> The type <code class="computeroutput"><span class="identifier">Formatter</span></code>
+ must be either a pointer to a null-terminated string of type <code class="computeroutput"><span class="identifier">char_type</span><span class="special">[]</span></code>,
+ or be a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ (for example <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span></code>)
+ or be a unary, binary or ternary functor that computes the replacement string
+ from a function call: either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(</span><span class="identifier">what</span><span class="special">)</span></code>
+ which must return a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ to be used as the replacement text, or either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(</span><span class="identifier">what</span><span class="special">,</span>
+ <span class="identifier">out</span><span class="special">)</span></code>
+ or <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(</span><span class="identifier">what</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>, both of which write the replacement text
+ to <code class="computeroutput"><span class="special">*</span><span class="identifier">out</span></code>,
+ and then return the new OutputIterator position. In each case <code class="computeroutput"><span class="identifier">what</span></code> is the <a class="link" href="match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> object that represents
+ the match found.
+ </p>
+<p>
         <span class="bold"><strong>Effects</strong></span>: Constructs an <a class="link" href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> object:
       </p>
 <pre class="programlisting"><span class="identifier">regex_iterator</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
@@ -150,20 +168,35 @@
 <p>
         <span class="bold"><strong>Returns</strong></span>: out.
       </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Formatter</span><span class="special">&gt;</span>
 <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
                                   <span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
+ <span class="identifier">Formatter</span> <span class="identifier">fmt</span><span class="special">,</span>
                                   <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <p>
+ <span class="bold"><strong>Requires</strong></span> The type <code class="computeroutput"><span class="identifier">Formatter</span></code>
+ must be either a pointer to a null-terminated string of type <code class="computeroutput"><span class="identifier">char_type</span><span class="special">[]</span></code>,
+ or be a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ (for example <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span></code>)
+ or be a unary, binary or ternary functor that computes the replacement string
+ from a function call: either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(</span><span class="identifier">what</span><span class="special">)</span></code>
+ which must return a container of <code class="computeroutput"><span class="identifier">char_type</span></code>'s
+ to be used as the replacement text, or either <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(</span><span class="identifier">what</span><span class="special">,</span>
+ <span class="identifier">out</span><span class="special">)</span></code>
+ or <code class="computeroutput"><span class="identifier">fmt</span><span class="special">(</span><span class="identifier">what</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>, both of which write the replacement text
+ to <code class="computeroutput"><span class="special">*</span><span class="identifier">out</span></code>,
+ and then return the new OutputIterator position. In each case <code class="computeroutput"><span class="identifier">what</span></code> is the <a class="link" href="match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> object that represents
+ the match found.
+ </p>
+<p>
         <span class="bold"><strong>Effects</strong></span>: Constructs an object <code class="computeroutput"><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">result</span></code>, calls <code class="computeroutput"><span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">result</span><span class="special">),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span>
         <span class="identifier">fmt</span><span class="special">,</span>
         <span class="identifier">flags</span><span class="special">)</span></code>,
         and then returns <code class="computeroutput"><span class="identifier">result</span></code>.
       </p>
 <a name="boost_regex.ref.regex_replace.examples"></a><h5>
-<a name="id734884"></a>
+<a name="id834417"></a>
         <a class="link" href="regex_replace.html#boost_regex.ref.regex_replace.examples">Examples</a>
       </h5>
 <p>
@@ -282,7 +315,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/regex_search.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/regex_search.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/regex_search.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_search</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -73,7 +73,7 @@
                   <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_search.description"></a><h5>
-<a name="id726538"></a>
+<a name="id825842"></a>
         <a class="link" href="regex_search.html#boost_regex.ref.regex_search.description">Description</a>
       </h5>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
@@ -355,7 +355,7 @@
         <span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
       </p>
 <a name="boost_regex.ref.regex_search.examples"></a><h5>
-<a name="id731156"></a>
+<a name="id829367"></a>
         <a class="link" href="regex_search.html#boost_regex.ref.regex_search.examples">Examples</a>
       </h5>
 <p>
@@ -409,7 +409,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_token_iterator</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -136,7 +136,7 @@
          <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_flag_type</span> <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_token_iterator.description"></a><h5>
-<a name="id748992"></a>
+<a name="id848520"></a>
         <a class="link" href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.description">Description</a>
       </h5>
 <a name="boost_regex.regex_token_iterator.construct1"></a><p>
@@ -383,7 +383,7 @@
         <span class="emphasis"><em>m</em></span>.
       </p>
 <a name="boost_regex.ref.regex_token_iterator.examples"></a><h5>
-<a name="id752056"></a>
+<a name="id851579"></a>
         <a class="link" href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.examples">Examples</a>
       </h5>
 <p>
@@ -496,7 +496,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/regex_traits.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/regex_traits.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/regex_traits.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>regex_traits</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -46,7 +46,7 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.regex_traits.description"></a><h5>
-<a name="id762181"></a>
+<a name="id862435"></a>
         <a class="link" href="regex_traits.html#boost_regex.ref.regex_traits.description">Description</a>
       </h5>
 <p>
@@ -92,7 +92,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/sub_match.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/sub_match.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/sub_match.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>sub_match</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -329,11 +329,11 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.sub_match.description"></a><h5>
-<a name="id706400"></a>
+<a name="id804611"></a>
         <a class="link" href="sub_match.html#boost_regex.ref.sub_match.description">Description</a>
       </h5>
 <a name="boost_regex.ref.sub_match.members"></a><h6>
-<a name="id706413"></a>
+<a name="id804624"></a>
         <a class="link" href="sub_match.html#boost_regex.ref.sub_match.members">Members</a>
       </h6>
 <a name="boost_regex.sub_match.value_type"></a><p>
@@ -473,7 +473,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.ref.sub_match.sub_match_non_member_operators"></a><h6>
-<a name="id707514"></a>
+<a name="id806817"></a>
         <a class="link" href="sub_match.html#boost_regex.ref.sub_match.sub_match_non_member_operators">sub_match
         non-member operators</a>
       </h6>
@@ -1008,7 +1008,7 @@
         <span class="special">+</span> <span class="identifier">m2</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span></code>.
       </p>
 <a name="boost_regex.ref.sub_match.stream_inserter"></a><h6>
-<a name="id719507"></a>
+<a name="id820449"></a>
         <a class="link" href="sub_match.html#boost_regex.ref.sub_match.stream_inserter">Stream inserter</a>
       </h6>
 <a name="boost_regex.sub_match.op_stream"></a><p>
@@ -1024,7 +1024,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>syntax_option_type</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -43,7 +43,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Options for POSIX Basic Regular Expressions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -398,7 +398,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Options for POSIX Extended Regular Expressions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -353,7 +353,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Options for Literal Strings</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -143,7 +143,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Overview of syntax_option_type</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -60,7 +60,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Options for Perl Regular Expressions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -413,7 +413,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>syntax_option_type Synopsis</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -88,7 +88,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Regular Expression Syntax</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -82,7 +82,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/basic_extended.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/basic_extended.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/basic_extended.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>POSIX Extended Regular Expression Syntax</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -28,7 +28,7 @@
       Expression Syntax</a>
 </h3></div></div></div>
 <a name="boost_regex.syntax.basic_extended.synopsis"></a><h4>
-<a name="id659360"></a>
+<a name="id758143"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.synopsis">Synopsis</a>
       </h4>
 <p>
@@ -46,7 +46,7 @@
 <a name="boost_regex.posix_extended_syntax"></a><p>
       </p>
 <a name="boost_regex.syntax.basic_extended.posix_extended_syntax"></a><h4>
-<a name="id659539"></a>
+<a name="id758322"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.posix_extended_syntax">POSIX
         Extended Syntax</a>
       </h4>
@@ -56,7 +56,7 @@
       </p>
 <pre class="programlisting">.[{()\*+?|^$</pre>
 <a name="boost_regex.syntax.basic_extended.wildcard_"></a><h5>
-<a name="id659560"></a>
+<a name="id758344"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.wildcard_">Wildcard:</a>
       </h5>
 <p>
@@ -74,7 +74,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.syntax.basic_extended.anchors_"></a><h5>
-<a name="id659605"></a>
+<a name="id758388"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.anchors_">Anchors:</a>
       </h5>
 <p>
@@ -86,7 +86,7 @@
         of an expression, or the last character of a sub-expression.
       </p>
 <a name="boost_regex.syntax.basic_extended.marked_sub_expressions_"></a><h5>
-<a name="id659627"></a>
+<a name="id758411"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.marked_sub_expressions_">Marked
         sub-expressions:</a>
       </h5>
@@ -98,7 +98,7 @@
         to by a back-reference.
       </p>
 <a name="boost_regex.syntax.basic_extended.repeats_"></a><h5>
-<a name="id659661"></a>
+<a name="id758445"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.repeats_">Repeats:</a>
       </h5>
 <p>
@@ -184,7 +184,7 @@
         operator to be applied to.
       </p>
 <a name="boost_regex.syntax.basic_extended.back_references_"></a><h5>
-<a name="id659967"></a>
+<a name="id758751"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.back_references_">Back references:</a>
       </h5>
 <p>
@@ -214,7 +214,7 @@
         </p></td></tr>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.alternation"></a><h5>
-<a name="id660031"></a>
+<a name="id758814"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.alternation">Alternation</a>
       </h5>
 <p>
@@ -227,7 +227,7 @@
         will match either of "abd" or "abef".
       </p>
 <a name="boost_regex.syntax.basic_extended.character_sets_"></a><h5>
-<a name="id660098"></a>
+<a name="id758881"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_sets_">Character
         sets:</a>
       </h5>
@@ -240,7 +240,7 @@
         A bracket expression may contain any combination of the following:
       </p>
 <a name="boost_regex.syntax.basic_extended.single_characters_"></a><h6>
-<a name="id660118"></a>
+<a name="id758902"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.single_characters_">Single
         characters:</a>
       </h6>
@@ -249,7 +249,7 @@
         or 'c'.
       </p>
 <a name="boost_regex.syntax.basic_extended.character_ranges_"></a><h6>
-<a name="id660149"></a>
+<a name="id758933"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_ranges_">Character
         ranges:</a>
       </h6>
@@ -265,7 +265,7 @@
         the code points of the characters only.
       </p>
 <a name="boost_regex.syntax.basic_extended.negation_"></a><h6>
-<a name="id660211"></a>
+<a name="id758994"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.negation_">Negation:</a>
       </h6>
 <p>
@@ -274,7 +274,7 @@
         range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
       </p>
 <a name="boost_regex.syntax.basic_extended.character_classes_"></a><h6>
-<a name="id660265"></a>
+<a name="id759048"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_classes_">Character
         classes:</a>
       </h6>
@@ -284,7 +284,7 @@
         <a class="link" href="character_classes.html" title="Character Class Names">character class names</a>.
       </p>
 <a name="boost_regex.syntax.basic_extended.collating_elements_"></a><h6>
-<a name="id660316"></a>
+<a name="id759100"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.collating_elements_">Collating
         Elements:</a>
       </h6>
@@ -312,7 +312,7 @@
         matches a NUL character.
       </p>
 <a name="boost_regex.syntax.basic_extended.equivalence_classes_"></a><h6>
-<a name="id660418"></a>
+<a name="id759202"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.equivalence_classes_">Equivalence
         classes:</a>
       </h6>
@@ -323,13 +323,13 @@
         elements the name <span class="emphasis"><em>col</em></span> may be a <a class="link" href="collating_names.html" title="Collating Names">symbolic
         name</a>. A primary sort key is one that ignores case, accentation, or
         locale-specific tailorings; so for example <code class="computeroutput"><span class="special">[[=</span><span class="identifier">a</span><span class="special">=]]</span></code> matches
- any of the characters: a, À, Á, Â, Ã, Ä, Å, A, à, á, â, ã, ä and å. Unfortunately implementation
+ any of the characters: a, &#192;, &#193;, &#194;, &#195;, &#196;, &#197;, A, &#224;, &#225;, &#226;, &#227;, &#228; and &#229;. Unfortunately implementation
         of this is reliant on the platform's collation and localisation support;
         this feature can not be relied upon to work portably across all platforms,
         or even all locales on one platform.
       </p>
 <a name="boost_regex.syntax.basic_extended.combinations_"></a><h6>
-<a name="id660476"></a>
+<a name="id759259"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.combinations_">Combinations:</a>
       </h6>
 <p>
@@ -337,7 +337,7 @@
         <code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>.
       </p>
 <a name="boost_regex.syntax.basic_extended.escapes"></a><h5>
-<a name="id660529"></a>
+<a name="id759312"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.escapes">Escapes</a>
       </h5>
 <p>
@@ -363,7 +363,7 @@
         extensions are also supported by Boost.Regex:
       </p>
 <a name="boost_regex.syntax.basic_extended.escapes_matching_a_specific_character"></a><h6>
-<a name="id660572"></a>
+<a name="id759355"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.escapes_matching_a_specific_character">Escapes
         matching a specific character</a>
       </h6>
@@ -552,7 +552,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_"></a><h6>
-<a name="id661216"></a>
+<a name="id760124"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_">"Single
         character" character classes:</a>
       </h6>
@@ -706,7 +706,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.character_properties"></a><h6>
-<a name="id661704"></a>
+<a name="id760613"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_properties">Character
         Properties</a>
       </h6>
@@ -813,7 +813,7 @@
         matches any "digit" character, as does <code class="computeroutput"><span class="special">\</span><span class="identifier">p</span><span class="special">{</span><span class="identifier">digit</span><span class="special">}</span></code>.
       </p>
 <a name="boost_regex.syntax.basic_extended.word_boundaries"></a><h6>
-<a name="id662011"></a>
+<a name="id760920"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.word_boundaries">Word Boundaries</a>
       </h6>
 <p>
@@ -888,7 +888,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.buffer_boundaries"></a><h6>
-<a name="id662167"></a>
+<a name="id761076"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.buffer_boundaries">Buffer
         boundaries</a>
       </h6>
@@ -979,7 +979,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.continuation_escape"></a><h6>
-<a name="id662352"></a>
+<a name="id761261"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.continuation_escape">Continuation
         Escape</a>
       </h6>
@@ -991,7 +991,7 @@
         match to start where the last one ended.
       </p>
 <a name="boost_regex.syntax.basic_extended.quoting_escape"></a><h6>
-<a name="id662380"></a>
+<a name="id761288"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.quoting_escape">Quoting
         escape</a>
       </h6>
@@ -1005,7 +1005,7 @@
 <span class="special">\*+</span><span class="identifier">aaa</span>
 </pre>
 <a name="boost_regex.syntax.basic_extended.unicode_escapes"></a><h6>
-<a name="id662460"></a>
+<a name="id761369"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.unicode_escapes">Unicode
         escapes</a>
       </h6>
@@ -1056,7 +1056,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.any_other_escape"></a><h6>
-<a name="id662562"></a>
+<a name="id761471"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.any_other_escape">Any other
         escape</a>
       </h6>
@@ -1065,7 +1065,7 @@
         \@ matches a literal '@'.
       </p>
 <a name="boost_regex.syntax.basic_extended.operator_precedence"></a><h5>
-<a name="id662579"></a>
+<a name="id761487"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.operator_precedence">Operator
         precedence</a>
       </h5>
@@ -1101,7 +1101,7 @@
 </li>
 </ol></div>
 <a name="boost_regex.syntax.basic_extended.what_gets_matched"></a><h5>
-<a name="id662712"></a>
+<a name="id761621"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.what_gets_matched">What
         Gets Matched</a>
       </h5>
@@ -1111,11 +1111,11 @@
         rule</a>.
       </p>
 <a name="boost_regex.syntax.basic_extended.variations"></a><h4>
-<a name="id662734"></a>
+<a name="id761642"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.variations">Variations</a>
       </h4>
 <a name="boost_regex.syntax.basic_extended.egrep"></a><h5>
-<a name="id662747"></a>
+<a name="id761655"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.egrep">Egrep</a>
       </h5>
 <p>
@@ -1136,7 +1136,7 @@
         used with the -E option.
       </p>
 <a name="boost_regex.syntax.basic_extended.awk"></a><h5>
-<a name="id662849"></a>
+<a name="id761757"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.awk">awk</a>
       </h5>
 <p>
@@ -1150,7 +1150,7 @@
         these by default anyway.
       </p>
 <a name="boost_regex.syntax.basic_extended.options"></a><h4>
-<a name="id662874"></a>
+<a name="id761783"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.options">Options</a>
       </h4>
 <p>
@@ -1163,7 +1163,7 @@
         modify how the case and locale sensitivity are to be applied.
       </p>
 <a name="boost_regex.syntax.basic_extended.references"></a><h4>
-<a name="id662952"></a>
+<a name="id761861"></a>
         <a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.references">References</a>
       </h4>
 <p>
@@ -1184,7 +1184,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>POSIX Basic Regular Expression Syntax</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -28,7 +28,7 @@
       Expression Syntax</a>
 </h3></div></div></div>
 <a name="boost_regex.syntax.basic_syntax.synopsis"></a><h4>
-<a name="id663001"></a>
+<a name="id761910"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.synopsis">Synopsis</a>
       </h4>
 <p>
@@ -45,7 +45,7 @@
 <a name="boost_regex.posix_basic"></a><p>
       </p>
 <a name="boost_regex.syntax.basic_syntax.posix_basic_syntax"></a><h4>
-<a name="id664085"></a>
+<a name="id762191"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.posix_basic_syntax">POSIX
         Basic Syntax</a>
       </h4>
@@ -55,7 +55,7 @@
       </p>
 <pre class="programlisting">.[\*^$</pre>
 <a name="boost_regex.syntax.basic_syntax.wildcard_"></a><h5>
-<a name="id664106"></a>
+<a name="id762213"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.wildcard_">Wildcard:</a>
       </h5>
 <p>
@@ -73,7 +73,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.syntax.basic_syntax.anchors_"></a><h5>
-<a name="id664151"></a>
+<a name="id762257"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.anchors_">Anchors:</a>
       </h5>
 <p>
@@ -85,7 +85,7 @@
         of an expression, or the last character of a sub-expression.
       </p>
 <a name="boost_regex.syntax.basic_syntax.marked_sub_expressions_"></a><h5>
-<a name="id664171"></a>
+<a name="id762278"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.marked_sub_expressions_">Marked
         sub-expressions:</a>
       </h5>
@@ -97,7 +97,7 @@
         by a back-reference.
       </p>
 <a name="boost_regex.syntax.basic_syntax.repeats_"></a><h5>
-<a name="id664202"></a>
+<a name="id762309"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.repeats_">Repeats:</a>
       </h5>
 <p>
@@ -155,7 +155,7 @@
         to.
       </p>
 <a name="boost_regex.syntax.basic_syntax.back_references_"></a><h5>
-<a name="id664367"></a>
+<a name="id762473"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.back_references_">Back references:</a>
       </h5>
 <p>
@@ -173,7 +173,7 @@
       </p>
 <pre class="programlisting">aaabba</pre>
 <a name="boost_regex.syntax.basic_syntax.character_sets_"></a><h5>
-<a name="id664416"></a>
+<a name="id762522"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_sets_">Character
         sets:</a>
       </h5>
@@ -186,7 +186,7 @@
         A bracket expression may contain any combination of the following:
       </p>
 <a name="boost_regex.syntax.basic_syntax.single_characters_"></a><h6>
-<a name="id664436"></a>
+<a name="id762543"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.single_characters_">Single
         characters:</a>
       </h6>
@@ -195,7 +195,7 @@
         or 'c'.
       </p>
 <a name="boost_regex.syntax.basic_syntax.character_ranges_"></a><h6>
-<a name="id664468"></a>
+<a name="id762574"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_ranges_">Character
         ranges:</a>
       </h6>
@@ -211,7 +211,7 @@
         of the characters only.
       </p>
 <a name="boost_regex.syntax.basic_syntax.negation_"></a><h6>
-<a name="id664524"></a>
+<a name="id762630"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.negation_">Negation:</a>
       </h6>
 <p>
@@ -220,7 +220,7 @@
         range a-c.
       </p>
 <a name="boost_regex.syntax.basic_syntax.character_classes_"></a><h6>
-<a name="id664562"></a>
+<a name="id762669"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_classes_">Character
         classes:</a>
       </h6>
@@ -230,7 +230,7 @@
         <a class="link" href="character_classes.html" title="Character Class Names">character class names</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.collating_elements_"></a><h6>
-<a name="id664614"></a>
+<a name="id762720"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.collating_elements_">Collating
         Elements:</a>
       </h6>
@@ -259,7 +259,7 @@
         element names</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.equivalence_classes_"></a><h6>
-<a name="id664705"></a>
+<a name="id762812"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.equivalence_classes_">Equivalence
         classes:</a>
       </h6>
@@ -270,13 +270,13 @@
         elements the name <span class="emphasis"><em>col</em></span> may be a <a class="link" href="collating_names.html" title="Collating Names">collating
         symbolic name</a>. A primary sort key is one that ignores case, accentation,
         or locale-specific tailorings; so for example <code class="computeroutput"><span class="special">[[=</span><span class="identifier">a</span><span class="special">=]]</span></code> matches
- any of the characters: a, À, Á, Â, Ã, Ä, Å, A, à, á, â, ã, ä and å. Unfortunately implementation
+ any of the characters: a, &#192;, &#193;, &#194;, &#195;, &#196;, &#197;, A, &#224;, &#225;, &#226;, &#227;, &#228; and &#229;. Unfortunately implementation
         of this is reliant on the platform's collation and localisation support;
         this feature can not be relied upon to work portably across all platforms,
         or even all locales on one platform.
       </p>
 <a name="boost_regex.syntax.basic_syntax.combinations_"></a><h6>
-<a name="id664763"></a>
+<a name="id762869"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.combinations_">Combinations:</a>
       </h6>
 <p>
@@ -284,7 +284,7 @@
         <code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]].</span></code>
       </p>
 <a name="boost_regex.syntax.basic_syntax.escapes"></a><h5>
-<a name="id664816"></a>
+<a name="id762922"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.escapes">Escapes</a>
       </h5>
 <p>
@@ -299,7 +299,7 @@
         will match either a literal '\' or a '^'.
       </p>
 <a name="boost_regex.syntax.basic_syntax.what_gets_matched"></a><h4>
-<a name="id664849"></a>
+<a name="id762956"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.what_gets_matched">What Gets
         Matched</a>
       </h4>
@@ -309,13 +309,13 @@
         rule</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.variations"></a><h4>
-<a name="id664871"></a>
+<a name="id762977"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.variations">Variations</a>
       </h4>
 <a name="boost_regex.grep_syntax"></a><p>
       </p>
 <a name="boost_regex.syntax.basic_syntax.grep"></a><h5>
-<a name="id664891"></a>
+<a name="id762998"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.grep">Grep</a>
       </h5>
 <p>
@@ -333,7 +333,7 @@
         As its name suggests, this behavior is consistent with the Unix utility grep.
       </p>
 <a name="boost_regex.syntax.basic_syntax.emacs"></a><h5>
-<a name="id664986"></a>
+<a name="id763092"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.emacs">emacs</a>
       </h5>
 <p>
@@ -613,7 +613,7 @@
         leftmost-longest rule</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.options"></a><h4>
-<a name="id665404"></a>
+<a name="id763510"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.options">Options</a>
       </h4>
 <p>
@@ -627,7 +627,7 @@
         options</a> modify how the case and locale sensitivity are to be applied.
       </p>
 <a name="boost_regex.syntax.basic_syntax.references"></a><h4>
-<a name="id665510"></a>
+<a name="id763617"></a>
         <a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.references">References</a>
       </h4>
 <p>
@@ -646,7 +646,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character Class Names</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -36,7 +36,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character classes that are supported by Unicode Regular Expressions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -533,7 +533,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Character Classes that are Always Supported</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -382,7 +382,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Collating Names</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -36,7 +36,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Digraphs</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -47,7 +47,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Named Unicode Characters</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -40,7 +40,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>POSIX Symbolic Names</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -971,7 +971,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>The Leftmost Longest Rule</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -65,7 +65,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Perl Regular Expression Syntax</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -28,7 +28,7 @@
       Syntax</a>
 </h3></div></div></div>
 <a name="boost_regex.syntax.perl_syntax.synopsis"></a><h4>
-<a name="id653383"></a>
+<a name="id752371"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.synopsis">Synopsis</a>
       </h4>
 <p>
@@ -43,7 +43,7 @@
 </span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span> <span class="identifier">e2</span><span class="special">(</span><span class="identifier">my_expression</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">perl</span><span class="special">|</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">icase</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.syntax.perl_syntax.perl_regular_expression_syntax"></a><h4>
-<a name="id653530"></a>
+<a name="id752519"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_regular_expression_syntax">Perl
         Regular Expression Syntax</a>
       </h4>
@@ -53,7 +53,7 @@
       </p>
 <pre class="programlisting">.[{()\*+?|^$</pre>
 <a name="boost_regex.syntax.perl_syntax.wildcard"></a><h5>
-<a name="id653554"></a>
+<a name="id752543"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.wildcard">Wildcard</a>
       </h5>
 <p>
@@ -73,7 +73,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.syntax.perl_syntax.anchors"></a><h5>
-<a name="id653601"></a>
+<a name="id752590"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.anchors">Anchors</a>
       </h5>
 <p>
@@ -83,7 +83,7 @@
         A '$' character shall match the end of a line.
       </p>
 <a name="boost_regex.syntax.perl_syntax.marked_sub_expressions"></a><h5>
-<a name="id653623"></a>
+<a name="id752611"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.marked_sub_expressions">Marked
         sub-expressions</a>
       </h5>
@@ -94,7 +94,7 @@
         can also repeated, or referred to by a back-reference.
       </p>
 <a name="boost_regex.syntax.perl_syntax.non_marking_grouping"></a><h5>
-<a name="id653649"></a>
+<a name="id752638"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_grouping">Non-marking
         grouping</a>
       </h5>
@@ -107,7 +107,7 @@
         without splitting out any separate sub-expressions.
       </p>
 <a name="boost_regex.syntax.perl_syntax.repeats"></a><h5>
-<a name="id653685"></a>
+<a name="id752674"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.repeats">Repeats</a>
       </h5>
 <p>
@@ -188,7 +188,7 @@
         to be applied to.
       </p>
 <a name="boost_regex.syntax.perl_syntax.non_greedy_repeats"></a><h5>
-<a name="id653922"></a>
+<a name="id752910"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_greedy_repeats">Non greedy
         repeats</a>
       </h5>
@@ -218,7 +218,7 @@
         while consuming as little input as possible.
       </p>
 <a name="boost_regex.syntax.perl_syntax.pocessive_repeats"></a><h5>
-<a name="id653980"></a>
+<a name="id752969"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.pocessive_repeats">Pocessive
         repeats</a>
       </h5>
@@ -250,7 +250,7 @@
         while giving nothing back.
       </p>
 <a name="boost_regex.syntax.perl_syntax.back_references"></a><h5>
-<a name="id654039"></a>
+<a name="id753028"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.back_references">Back references</a>
       </h5>
 <p>
@@ -360,7 +360,7 @@
         named "two".
       </p>
 <a name="boost_regex.syntax.perl_syntax.alternation"></a><h5>
-<a name="id654259"></a>
+<a name="id753247"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.alternation">Alternation</a>
       </h5>
 <p>
@@ -387,7 +387,7 @@
         <code class="literal">(?:abc)??</code> has exactly the same effect.
       </p>
 <a name="boost_regex.syntax.perl_syntax.character_sets"></a><h5>
-<a name="id654327"></a>
+<a name="id753316"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_sets">Character sets</a>
       </h5>
 <p>
@@ -399,7 +399,7 @@
         A bracket expression may contain any combination of the following:
       </p>
 <a name="boost_regex.syntax.perl_syntax.single_characters"></a><h6>
-<a name="id654632"></a>
+<a name="id753347"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.single_characters">Single characters</a>
       </h6>
 <p>
@@ -407,7 +407,7 @@
         'b', or 'c'.
       </p>
 <a name="boost_regex.syntax.perl_syntax.character_ranges"></a><h6>
-<a name="id654654"></a>
+<a name="id753369"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_ranges">Character
         ranges</a>
       </h6>
@@ -421,7 +421,7 @@
         sensitive.
       </p>
 <a name="boost_regex.syntax.perl_syntax.negation"></a><h6>
-<a name="id654686"></a>
+<a name="id753401"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.negation">Negation</a>
       </h6>
 <p>
@@ -430,7 +430,7 @@
         matches any character that is not in the range <code class="literal">a-c</code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.character_classes"></a><h6>
-<a name="id654714"></a>
+<a name="id753429"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_classes">Character
         classes</a>
       </h6>
@@ -441,7 +441,7 @@
         class names</a>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.collating_elements"></a><h6>
-<a name="id654746"></a>
+<a name="id753461"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.collating_elements">Collating
         Elements</a>
       </h6>
@@ -463,7 +463,7 @@
         matches a <code class="literal">\0</code> character.
       </p>
 <a name="boost_regex.syntax.perl_syntax.equivalence_classes"></a><h6>
-<a name="id654808"></a>
+<a name="id753524"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.equivalence_classes">Equivalence
         classes</a>
       </h6>
@@ -474,13 +474,13 @@
         may be a <a class="link" href="collating_names.html" title="Collating Names">symbolic name</a>.
         A primary sort key is one that ignores case, accentation, or locale-specific
         tailorings; so for example <code class="computeroutput"><span class="special">[[=</span><span class="identifier">a</span><span class="special">=]]</span></code> matches
- any of the characters: a, À, Á, Â, Ã, Ä, Å, A, à, á, â, ã, ä and å. Unfortunately implementation
+ any of the characters: a, &#192;, &#193;, &#194;, &#195;, &#196;, &#197;, A, &#224;, &#225;, &#226;, &#227;, &#228; and &#229;. Unfortunately implementation
         of this is reliant on the platform's collation and localisation support;
         this feature can not be relied upon to work portably across all platforms,
         or even all locales on one platform.
       </p>
 <a name="boost_regex.syntax.perl_syntax.escaped_characters"></a><h6>
-<a name="id654856"></a>
+<a name="id753572"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.escaped_characters">Escaped
         Characters</a>
       </h6>
@@ -492,7 +492,7 @@
         is <span class="emphasis"><em>not</em></span> a "word" character.
       </p>
 <a name="boost_regex.syntax.perl_syntax.combinations"></a><h6>
-<a name="id654925"></a>
+<a name="id753640"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.combinations">Combinations</a>
       </h6>
 <p>
@@ -500,7 +500,7 @@
         <code class="literal">[[:digit:]a-c[.NUL.]]</code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.escapes"></a><h5>
-<a name="id654946"></a>
+<a name="id753662"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.escapes">Escapes</a>
       </h5>
 <p>
@@ -692,7 +692,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.perl_syntax._quot_single_character_quot__character_classes_"></a><h6>
-<a name="id655334"></a>
+<a name="id754049"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax._quot_single_character_quot__character_classes_">"Single
         character" character classes:</a>
       </h6>
@@ -894,7 +894,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.perl_syntax.character_properties"></a><h6>
-<a name="id655934"></a>
+<a name="id754649"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_properties">Character
         Properties</a>
       </h6>
@@ -1002,7 +1002,7 @@
         as does <code class="literal">\p{digit}</code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.word_boundaries"></a><h6>
-<a name="id656223"></a>
+<a name="id754939"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.word_boundaries">Word Boundaries</a>
       </h6>
 <p>
@@ -1021,7 +1021,7 @@
         <code class="literal">\B</code> Matches only when not at a word boundary.
       </p>
 <a name="boost_regex.syntax.perl_syntax.buffer_boundaries"></a><h6>
-<a name="id656275"></a>
+<a name="id754990"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.buffer_boundaries">Buffer boundaries</a>
       </h6>
 <p>
@@ -1046,7 +1046,7 @@
         to the regular expression <code class="literal">\n*\z</code>
       </p>
 <a name="boost_regex.syntax.perl_syntax.continuation_escape"></a><h6>
-<a name="id656316"></a>
+<a name="id755031"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.continuation_escape">Continuation
         Escape</a>
       </h6>
@@ -1058,7 +1058,7 @@
         one ended.
       </p>
 <a name="boost_regex.syntax.perl_syntax.quoting_escape"></a><h6>
-<a name="id656337"></a>
+<a name="id755053"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.quoting_escape">Quoting escape</a>
       </h6>
 <p>
@@ -1071,7 +1071,7 @@
 <span class="special">\*+</span><span class="identifier">aaa</span>
 </pre>
 <a name="boost_regex.syntax.perl_syntax.unicode_escapes"></a><h6>
-<a name="id656384"></a>
+<a name="id755099"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.unicode_escapes">Unicode escapes</a>
       </h6>
 <p>
@@ -1081,7 +1081,7 @@
         followed by a sequence of zero or more combining characters.
       </p>
 <a name="boost_regex.syntax.perl_syntax.matching_line_endings"></a><h6>
-<a name="id656410"></a>
+<a name="id755126"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.matching_line_endings">Matching
         Line Endings</a>
       </h6>
@@ -1090,7 +1090,7 @@
         sequence, specifically it is identical to the expression <code class="literal">(?&gt;\x0D\x0A?|[\x0A-\x0C\x85\x{2028}\x{2029}])</code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.keeping_back_some_text"></a><h6>
-<a name="id656437"></a>
+<a name="id755152"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.keeping_back_some_text">Keeping
         back some text</a>
       </h6>
@@ -1105,7 +1105,7 @@
         This can be used to simulate variable width lookbehind assertions.
       </p>
 <a name="boost_regex.syntax.perl_syntax.any_other_escape"></a><h6>
-<a name="id656467"></a>
+<a name="id755182"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.any_other_escape">Any other
         escape</a>
       </h6>
@@ -1114,7 +1114,7 @@
         \@ matches a literal '@'.
       </p>
 <a name="boost_regex.syntax.perl_syntax.perl_extended_patterns"></a><h5>
-<a name="id656484"></a>
+<a name="id755199"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_extended_patterns">Perl
         Extended Patterns</a>
       </h5>
@@ -1123,7 +1123,7 @@
         <code class="literal">(?</code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.named_subexpressions"></a><h6>
-<a name="id656505"></a>
+<a name="id755221"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.named_subexpressions">Named
         Subexpressions</a>
       </h6>
@@ -1145,14 +1145,14 @@
         format string for search and replace operations, or in the <a class="link" href="../ref/match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> member functions.
       </p>
 <a name="boost_regex.syntax.perl_syntax.comments"></a><h6>
-<a name="id656600"></a>
+<a name="id755315"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.comments">Comments</a>
       </h6>
 <p>
         <code class="literal">(?# ... )</code> is treated as a comment, it's contents are ignored.
       </p>
 <a name="boost_regex.syntax.perl_syntax.modifiers"></a><h6>
-<a name="id656623"></a>
+<a name="id755338"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.modifiers">Modifiers</a>
       </h6>
 <p>
@@ -1166,7 +1166,7 @@
         pattern only.
       </p>
 <a name="boost_regex.syntax.perl_syntax.non_marking_groups"></a><h6>
-<a name="id656658"></a>
+<a name="id755373"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_groups">Non-marking
         groups</a>
       </h6>
@@ -1175,7 +1175,7 @@
         an additional sub-expression.
       </p>
 <a name="boost_regex.syntax.perl_syntax.branch_reset"></a><h6>
-<a name="id656679"></a>
+<a name="id755395"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.branch_reset">Branch reset</a>
       </h6>
 <p>
@@ -1197,7 +1197,7 @@
 # 1 2 2 3 2 3 4
 </pre>
 <a name="boost_regex.syntax.perl_syntax.lookahead"></a><h6>
-<a name="id656716"></a>
+<a name="id755432"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.lookahead">Lookahead</a>
       </h6>
 <p>
@@ -1220,7 +1220,7 @@
         could be used to validate the password.
       </p>
 <a name="boost_regex.syntax.perl_syntax.lookbehind"></a><h6>
-<a name="id656791"></a>
+<a name="id757213"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.lookbehind">Lookbehind</a>
       </h6>
 <p>
@@ -1234,7 +1234,7 @@
         (pattern must be of fixed length).
       </p>
 <a name="boost_regex.syntax.perl_syntax.independent_sub_expressions"></a><h6>
-<a name="id658462"></a>
+<a name="id757246"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.independent_sub_expressions">Independent
         sub-expressions</a>
       </h6>
@@ -1247,7 +1247,7 @@
         no match is found at all.
       </p>
 <a name="boost_regex.syntax.perl_syntax.recursive_expressions"></a><h6>
-<a name="id658493"></a>
+<a name="id757277"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.recursive_expressions">Recursive
         Expressions</a>
       </h6>
@@ -1271,7 +1271,7 @@
         to the next sub-expression to be declared.
       </p>
 <a name="boost_regex.syntax.perl_syntax.conditional_expressions"></a><h6>
-<a name="id658591"></a>
+<a name="id757374"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.conditional_expressions">Conditional
         Expressions</a>
       </h6>
@@ -1319,7 +1319,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.syntax.perl_syntax.operator_precedence"></a><h5>
-<a name="id658732"></a>
+<a name="id757516"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.operator_precedence">Operator
         precedence</a>
       </h5>
@@ -1354,7 +1354,7 @@
         </li>
 </ol></div>
 <a name="boost_regex.syntax.perl_syntax.what_gets_matched"></a><h4>
-<a name="id658822"></a>
+<a name="id757606"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.what_gets_matched">What gets
         matched</a>
       </h4>
@@ -1529,7 +1529,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.perl_syntax.variations"></a><h4>
-<a name="id659180"></a>
+<a name="id757963"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.variations">Variations</a>
       </h4>
 <p>
@@ -1538,7 +1538,7 @@
         and <code class="literal">JScript</code></a> are all synonyms for <code class="literal">perl</code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.options"></a><h4>
-<a name="id659227"></a>
+<a name="id758010"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.options">Options</a>
       </h4>
 <p>
@@ -1550,7 +1550,7 @@
         are to be applied.
       </p>
 <a name="boost_regex.syntax.perl_syntax.pattern_modifiers"></a><h4>
-<a name="id659275"></a>
+<a name="id758058"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.pattern_modifiers">Pattern
         Modifiers</a>
       </h4>
@@ -1562,7 +1562,7 @@
         and <code class="literal">no_mod_s</code></a>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.references"></a><h4>
-<a name="id659327"></a>
+<a name="id758111"></a>
         <a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.references">References</a>
       </h4>
 <p>
@@ -1571,7 +1571,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/boost_regex/unicode.html
==============================================================================
--- branches/release/libs/regex/doc/html/boost_regex/unicode.html (original)
+++ branches/release/libs/regex/doc/html/boost_regex/unicode.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Unicode and Boost.Regex</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -30,7 +30,7 @@
       There are two ways to use Boost.Regex with Unicode strings:
     </p>
 <a name="boost_regex.unicode.rely_on_wchar_t"></a><h5>
-<a name="id648171"></a>
+<a name="id746814"></a>
       <a class="link" href="unicode.html#boost_regex.unicode.rely_on_wchar_t">Rely on wchar_t</a>
     </h5>
 <p>
@@ -56,7 +56,7 @@
       </li>
 </ul></div>
 <a name="boost_regex.unicode.use_a_unicode_aware_regular_expression_type_"></a><h5>
-<a name="id648289"></a>
+<a name="id746932"></a>
       <a class="link" href="unicode.html#boost_regex.unicode.use_a_unicode_aware_regular_expression_type_">Use
       a Unicode Aware Regular Expression Type.</a>
     </h5>
@@ -71,7 +71,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright &#169; 1998 -2007 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>

Modified: branches/release/libs/regex/doc/html/index.html
==============================================================================
--- branches/release/libs/regex/doc/html/index.html (original)
+++ branches/release/libs/regex/doc/html/index.html 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Boost.Regex</title>
 <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -26,9 +26,9 @@
 <div><div class="authorgroup"><div class="author"><h3 class="author">
 <span class="firstname">John</span> <span class="surname">Maddock</span>
 </h3></div></div></div>
-<div><p class="copyright">Copyright © 1998 -2007 John Maddock</p></div>
+<div><p class="copyright">Copyright &#169; 1998 -2007 John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id637869"></a><p>
+<a name="id736233"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -196,7 +196,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 29, 2009 at 15:59:46 GMT</small></p></td>
+<td align="left"><p><small>Last revised: December 05, 2009 at 12:09:47 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/release/libs/regex/doc/match_result.qbk
==============================================================================
--- branches/release/libs/regex/doc/match_result.qbk (original)
+++ branches/release/libs/regex/doc/match_result.qbk 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -105,11 +105,12 @@
       const_iterator ``[link boost_regex.match_results.begin begin]``() const;
       const_iterator ``[link boost_regex.match_results.end end]``() const;
       // format:
- template <class OutputIterator>
+ template <class OutputIterator, class Formatter>
       OutputIterator ``[link boost_regex.match_results.format format]``(OutputIterator out,
- const string_type& fmt,
+ Formatter fmt,
                            match_flag_type flags = format_default) const;
- string_type ``[link boost_regex.match_results.format2 format]``(const string_type& fmt,
+ template <class Formatter>
+ string_type ``[link boost_regex.match_results.format2 format]``(Formatter fmt,
                         match_flag_type flags = format_default) const;
 
       allocator_type ``[link boost_regex.match_results.get_allocator get_allocator]``() const;
@@ -352,15 +353,25 @@
 [#boost_regex.match_results_format]
 [#boost_regex.match_results.format]
 
- template <class OutputIterator>
+ template <class OutputIterator, class Formatter>
    OutputIterator format(OutputIterator out,
- const string_type& fmt,
- match_flag_type flags = format_default);
+ Formatter fmt,
+ match_flag_type flags = format_default);
 
 [*Requires]: The type `OutputIterator` conforms to the Output Iterator requirements
 (C++ std 24.1.2).
 
-[*Effects]: Copies the character sequence `[fmt.begin(), fmt.end())` to
+The type `Formatter` must be either a pointer to a null-terminated string
+of type `char_type[]`, or be a container of `char_type`'s (for example
+`std::basic_string<char_type>`) or be a unary, binary or ternary functor
+that computes the replacement string from a function call: either
+`fmt(*this)` which must return a container of `char_type`'s to be used as the
+replacement text, or either `fmt(*this, out)` or `fmt(*this, out, flags)`, both of
+which write the replacement text to `*out`, and then return the new
+OutputIterator position.
+
+[*Effects]: If `fmt` is either a null-terminated string, or a
+container of `char_type`'s, then copies the character sequence `[fmt.begin(), fmt.end())` to
 `OutputIterator` /out/. For each format specifier or escape sequence in
 /fmt/, replace that sequence with either the character(s) it represents,
 or the sequence of characters within `*this` to which it refers.
@@ -369,6 +380,16 @@
 ECMA-262, ECMAScript Language Specification, Chapter 15 part
 5.4.11 String.prototype.replace.
 
+If `fmt` is a function object, then depending on the number of arguments
+the function object accepts, it will either:
+
+* Call `fmt(*this)` and copy the result to `OutputIterator`
+/out/.
+* Call `fmt(*this, out)`.
+* Call `fmt(*this, out, flags)`.
+
+In all cases the new position of the `OutputIterator` is returned.
+
 See the [link boost_regex.format format syntax guide for more information].
 
 [*Returns]: out.
@@ -376,10 +397,23 @@
 
 [#boost_regex.match_results.format2]
 
- string_type format(const string_type& fmt,
- match_flag_type flags = format_default);
-
-[*Effects]: Returns a copy of the string /fmt/. For each format specifier or
+ template <class Formatter>
+ string_type format(Formatter fmt,
+ match_flag_type flags = format_default);
+
+[*Requires]
+The type `Formatter` must be either a pointer to a null-terminated string
+of type `char_type[]`, or be a container of `char_type`'s (for example
+`std::basic_string<char_type>`) or be a unary, binary or ternary functor
+that computes the replacement string from a function call: either
+`fmt(*this)` which must return a container of `char_type`'s to be used as the
+replacement text, or either `fmt(*this, out)` or `fmt(*this, out, flags)`, both of
+which write the replacement text to `*out`, and then return the new
+OutputIterator position.
+
+[*Effects]:
+If `fmt` is either a null-terminated string, or a
+container of `char_type`'s, then copies the string /fmt/: For each format specifier or
 escape sequence in /fmt/, replace that sequence with either the
 character(s) it represents, or the sequence of characters within `*this` to
 which it refers. The bitmasks specified in flags determines what format
@@ -387,6 +421,15 @@
 used by ECMA-262, ECMAScript Language Specification, Chapter 15 part
 5.4.11 String.prototype.replace.
 
+If `fmt` is a function object, then depending on the number of arguments
+the function object accepts, it will either:
+
+* Call `fmt(*this)` and return the result.
+* Call `fmt(*this, unspecified-output-iterator)`, where `unspecified-output-iterator`
+is an unspecified OutputIterator type used to copy the output to the string result.
+* Call `fmt(*this, unspecified-output-iterator, flags)`, where `unspecified-output-iterator`
+is an unspecified OutputIterator type used to copy the output to the string result.
+
 See the [link boost_regex.format format syntax guide for more information].
 
 [#boost_regex.match_results.get_allocator]

Modified: branches/release/libs/regex/doc/regex_format.qbk
==============================================================================
--- branches/release/libs/regex/doc/regex_format.qbk (original)
+++ branches/release/libs/regex/doc/regex_format.qbk 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -21,15 +21,10 @@
 new string based upon a format string, `regex_format` can be used for
 search and replace operations:
 
- template <class OutputIterator, class iterator, class Allocator, class charT>
+ template <class OutputIterator, class iterator, class Allocator, class Formatter>
    OutputIterator regex_format(OutputIterator out,
                               const match_results<iterator, Allocator>& m,
- const charT* fmt,
- match_flag_type flags = 0);
- template <class OutputIterator, class iterator, class Allocator, class charT>
- OutputIterator regex_format(OutputIterator out,
- const match_results<iterator, Allocator>& m,
- const std::basic_string<charT>& fmt,
+ Formatter fmt,
                               match_flag_type flags = 0);
 
 The library also defines the following convenience variation of
@@ -39,16 +34,10 @@
 [note This version may not be available, or may be available in a more limited
 form, depending upon your compilers capabilities]
 
- template <class iterator, class Allocator, class charT>
- std::basic_string<charT> regex_format
- (const match_results<iterator, Allocator>& m,
- const charT* fmt,
- match_flag_type flags = 0);
-
- template <class iterator, class Allocator, class charT>
+ template <class iterator, class Allocator, class Formatter>
    std::basic_string<charT> regex_format
                                     (const match_results<iterator, Allocator>& m,
- const std::basic_string<charT>& fmt,
+ Formatter fmt,
                                     match_flag_type flags = 0);
 
 Parameters to the main version of the function are passed as follows:
@@ -57,7 +46,7 @@
 [[Parameter][Description]]
 [[`OutputIterator out`][An output iterator type, the output string is sent to this iterator. Typically this would be a std::ostream_iterator. ]]
 [[`const match_results<iterator, Allocator>& m`][An instance of [match_results] obtained from one of the matching algorithms above, and denoting what matched. ]]
-[[`const charT* fmt`][A format string that determines how the match is transformed into the new string. ]]
+[[`Formatter fmt`][Either a format string that determines how the match is transformed into the new string, or a functor that computes the new string from /m/ - see [match_results_format]. ]]
 [[`unsigned flags`][Optional flags which describe how the format string is to be interpreted. ]]
 ]
 

Modified: branches/release/libs/regex/doc/regex_replace.qbk
==============================================================================
--- branches/release/libs/regex/doc/regex_replace.qbk (original)
+++ branches/release/libs/regex/doc/regex_replace.qbk 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -18,34 +18,37 @@
 flag `format_no_copy` set. If the flag `format_first_only` is set then
 only the first occurrence is replaced rather than all occurrences.
 
- template <class OutputIterator, class BidirectionalIterator, class traits, class charT>
+ template <class OutputIterator, class BidirectionalIterator, class traits, class Formatter>
    OutputIterator regex_replace(OutputIterator out,
                                 BidirectionalIterator first,
                                 BidirectionalIterator last,
                                 const basic_regex<charT, traits>& e,
- const basic_string<charT>& fmt,
+ Formatter fmt,
                                 match_flag_type flags = match_default);
 
- template <class traits, class charT>
+ template <class traits, class Formatter>
    basic_string<charT> regex_replace(const basic_string<charT>& s,
                                      const basic_regex<charT, traits>& e,
- const basic_string<charT>& fmt,
+ Formatter fmt,
                                      match_flag_type flags = match_default);
 
 
 [h4 Description]
 
- template <class OutputIterator, class BidirectionalIterator, class traits, class charT>
+ template <class OutputIterator, class BidirectionalIterator, class traits, class Formatter>
    OutputIterator regex_replace(OutputIterator out,
                                 BidirectionalIterator first,
                                 BidirectionalIterator last,
                                 const basic_regex<charT, traits>& e,
- const basic_string<charT>& fmt,
+ Formatter fmt,
                                 match_flag_type flags = match_default);
 
 Enumerates all the occurences of expression /e/ in the sequence \[first, last),
 replacing each occurence with the string that results by merging the
 match found with the format string /fmt/, and copies the resulting string to /out/.
+In the case that /fmt/ is a unary, binary or ternary function object, then the
+character sequence generated by that object is copied unchanged to the output when performing
+a substitution.
 
 If the flag `format_no_copy` is set in /flags/ then unmatched sections of
 text are not copied to output.
@@ -57,6 +60,17 @@
 rules used for finding matches, are determined by the flags set in /flags/:
 see [match_flag_type].
 
+[*Requires]
+The type `Formatter` must be either a pointer to a null-terminated string
+of type `char_type[]`, or be a container of `char_type`'s (for example
+`std::basic_string<char_type>`) or be a unary, binary or ternary functor
+that computes the replacement string from a function call: either
+`fmt(what)` which must return a container of `char_type`'s to be used as the
+replacement text, or either `fmt(what, out)` or `fmt(what, out, flags)`, both of
+which write the replacement text to `*out`, and then return the new
+OutputIterator position. In each case `what` is the [match_results] object
+that represents the match found.
+
 [*Effects]: Constructs an [regex_iterator] object:
 
    regex_iterator<BidirectionalIterator, charT, traits, Allocator>
@@ -107,12 +121,23 @@
 
 [*Returns]: out.
 
- template <class traits, class charT>
+ template <class traits, class Formatter>
    basic_string<charT> regex_replace(const basic_string<charT>& s,
                                      const basic_regex<charT, traits>& e,
- const basic_string<charT>& fmt,
+ Formatter fmt,
                                      match_flag_type flags = match_default);
 
+[*Requires]
+The type `Formatter` must be either a pointer to a null-terminated string
+of type `char_type[]`, or be a container of `char_type`'s (for example
+`std::basic_string<char_type>`) or be a unary, binary or ternary functor
+that computes the replacement string from a function call: either
+`fmt(what)` which must return a container of `char_type`'s to be used as the
+replacement text, or either `fmt(what, out)` or `fmt(what, out, flags)`, both of
+which write the replacement text to `*out`, and then return the new
+OutputIterator position. In each case `what` is the [match_results] object
+that represents the match found.
+
 [*Effects]: Constructs an object `basic_string<charT> result`, calls
 `regex_replace(back_inserter(result), s.begin(), s.end(), e, fmt, flags)`,
 and then returns `result`.

Modified: branches/release/libs/regex/example/snippets/icu_example.cpp
==============================================================================
--- branches/release/libs/regex/example/snippets/icu_example.cpp (original)
+++ branches/release/libs/regex/example/snippets/icu_example.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -28,7 +28,7 @@
 // Find out if *password* meets our password requirements,
 // as defined by the regular expression *requirements*.
 //
-bool is_valid_password(const UnicodeString& password, const UnicodeString& requirements)
+bool is_valid_password(const U_NAMESPACE_QUALIFIER UnicodeString& password, const U_NAMESPACE_QUALIFIER UnicodeString& requirements)
 {
    return boost::u32regex_match(password, boost::make_u32regex(requirements));
 }
@@ -52,7 +52,7 @@
    }
 }
 
-UnicodeString extract_greek(const UnicodeString& text)
+U_NAMESPACE_QUALIFIER UnicodeString extract_greek(const U_NAMESPACE_QUALIFIER UnicodeString& text)
 {
    // searches through some UTF-16 encoded text for a block encoded in Greek,
    // this expression is imperfect, but the best we can do for now - searching
@@ -62,7 +62,7 @@
    if(boost::u32regex_search(text, what, r))
    {
       // extract $0 as a UnicodeString:
- return UnicodeString(what[0].first, what.length(0));
+ return U_NAMESPACE_QUALIFIER UnicodeString(what[0].first, what.length(0));
    }
    else
    {
@@ -127,7 +127,7 @@
 const boost::u32regex e = boost::make_u32regex("\\A(\\d{3,4})[- ]?(\\d{4})[- ]?(\\d{4})[- ]?(\\d{4})\\z");
 const char* human_format = "$1-$2-$3-$4";
 
-UnicodeString human_readable_card_number(const UnicodeString& s)
+U_NAMESPACE_QUALIFIER UnicodeString human_readable_card_number(const U_NAMESPACE_QUALIFIER UnicodeString& s)
 {
    return boost::u32regex_replace(s, e, human_format);
 }
@@ -136,8 +136,8 @@
 int main()
 {
    // password checks using u32regex_match:
- UnicodeString pwd = "abcDEF---";
- UnicodeString pwd_check = "(?=.*[[:lower:]])(?=.*[[:upper:]])(?=.*[[:punct:]]).{6,}";
+ U_NAMESPACE_QUALIFIER UnicodeString pwd = "abcDEF---";
+ U_NAMESPACE_QUALIFIER UnicodeString pwd_check = "(?=.*[[:lower:]])(?=.*[[:upper:]])(?=.*[[:punct:]]).{6,}";
    bool b = is_valid_password(pwd, pwd_check);
    assert(b);
    pwd = "abcD-";
@@ -152,8 +152,8 @@
    assert(file == "d.h");
 
    // Greek text extraction with u32regex_search:
- UnicodeString text = L"Some where in \x0391\x039D\x0395\x0398\x0391 2004";
- UnicodeString greek = extract_greek(text);
+ U_NAMESPACE_QUALIFIER UnicodeString text = L"Some where in \x0391\x039D\x0395\x0398\x0391 2004";
+ U_NAMESPACE_QUALIFIER UnicodeString greek = extract_greek(text);
    assert(greek == L"\x0391\x039D\x0395\x0398\x0391 2004");
 
    // extract currency symbols with associated value, use iterator interface:
@@ -161,7 +161,7 @@
    enumerate_currencies(text2);
    enumerate_currencies2(text2);
 
- UnicodeString credit_card_number = "1234567887654321";
+ U_NAMESPACE_QUALIFIER UnicodeString credit_card_number = "1234567887654321";
    credit_card_number = human_readable_card_number(credit_card_number);
    assert(credit_card_number == "1234-5678-8765-4321");
    return 0;

Modified: branches/release/libs/regex/example/snippets/regex_grep_example_1.cpp
==============================================================================
--- branches/release/libs/regex/example/snippets/regex_grep_example_1.cpp (original)
+++ branches/release/libs/regex/example/snippets/regex_grep_example_1.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -67,6 +67,8 @@
                what[5].first - base;
       return true;
    }
+private:
+ IndexClassesPred& operator=(const IndexClassesPred&);
 };
 
 void IndexClasses(map_type& m, const std::string& file)

Modified: branches/release/libs/regex/example/snippets/regex_match_example.cpp
==============================================================================
--- branches/release/libs/regex/example/snippets/regex_match_example.cpp (original)
+++ branches/release/libs/regex/example/snippets/regex_match_example.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -55,11 +55,11 @@
 istream& getline(istream& is, std::string& s)
 {
    s.erase();
- char c = is.get();
+ char c = static_cast<char>(is.get());
    while(c != '\n')
    {
       s.append(1, c);
- c = is.get();
+ c = static_cast<char>(is.get());
    }
    return is;
 }

Modified: branches/release/libs/regex/example/snippets/regex_merge_example.cpp
==============================================================================
--- branches/release/libs/regex/example/snippets/regex_merge_example.cpp (original)
+++ branches/release/libs/regex/example/snippets/regex_merge_example.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -86,8 +86,8 @@
    return 0;
 }
 
-extern const char* pre_expression = "(<)|(>)|\\r";
-extern const char* pre_format = "(?1&lt;)(?2&gt;)";
+const char* pre_expression = "(<)|(>)|\\r";
+const char* pre_format = "(?1&lt;)(?2&gt;)";
 
 
 const char* expression_text = // preprocessor directives: index 1

Modified: branches/release/libs/regex/example/snippets/regex_replace_example.cpp
==============================================================================
--- branches/release/libs/regex/example/snippets/regex_replace_example.cpp (original)
+++ branches/release/libs/regex/example/snippets/regex_replace_example.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -86,8 +86,8 @@
    return 0;
 }
 
-extern const char* pre_expression = "(<)|(>)|(&)|\\r";
-extern const char* pre_format = "(?1&lt;)(?2&gt;)(?3&amp;)";
+const char* pre_expression = "(<)|(>)|(&)|\\r";
+const char* pre_format = "(?1&lt;)(?2&gt;)(?3&amp;)";
 
 
 const char* expression_text = // preprocessor directives: index 1

Modified: branches/release/libs/regex/example/snippets/regex_split_example_1.cpp
==============================================================================
--- branches/release/libs/regex/example/snippets/regex_split_example_1.cpp (original)
+++ branches/release/libs/regex/example/snippets/regex_split_example_1.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -36,11 +36,11 @@
 istream& getline(istream& is, std::string& s)
 {
    s.erase();
- char c = is.get();
+ char c = static_cast<char>(is.get());
    while(c != '\n')
    {
       s.append(1, c);
- c = is.get();
+ c = static_cast<char>(is.get());
    }
    return is;
 }

Modified: branches/release/libs/regex/example/snippets/regex_token_iterator_eg_1.cpp
==============================================================================
--- branches/release/libs/regex/example/snippets/regex_token_iterator_eg_1.cpp (original)
+++ branches/release/libs/regex/example/snippets/regex_token_iterator_eg_1.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -29,11 +29,11 @@
 istream& getline(istream& is, std::string& s)
 {
    s.erase();
- char c = is.get();
+ char c = static_cast<char>(is.get());
    while(c != '\n')
    {
       s.append(1, c);
- c = is.get();
+ c = static_cast<char>(is.get());
    }
    return is;
 }

Modified: branches/release/libs/regex/example/timer/regex_timer.cpp
==============================================================================
--- branches/release/libs/regex/example/timer/regex_timer.cpp (original)
+++ branches/release/libs/regex/example/timer/regex_timer.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -9,6 +9,10 @@
  *
  */
 
+#ifdef _MSC_VER
+#pragma warning(disable: 4996 4127)
+#endif
+
 #include <string>
 #include <algorithm>
 #include <deque>
@@ -54,7 +58,7 @@
    j = s.end();
    while(i != j)
    {
- os.put(*i);
+ os.put(static_cast<char>(*i));
       ++i;
    }
    return os;
@@ -96,15 +100,15 @@
 istream& getline(istream& is, std::string& s)
 {
    s.erase();
- char c = is.get();
+ char c = static_cast<char>(is.get());
    while(c != '\n')
    {
       s.append(1, c);
- c = is.get();
+ c = static_cast<char>(is.get());
    }
    return is;
 }
-#elif defined(__CYGWIN__)
+#else
 istream& getline(istream& is, std::string& s)
 {
    std::getline(is, s);
@@ -112,8 +116,6 @@
       s.erase(s.size() - 1);
    return is;
 }
-#else
-using std::getline;
 #endif
 }
 
@@ -148,8 +150,8 @@
    std::size_t nsubs;
    boost::timer t;
    double tim;
- bool result;
- int iters = 100;
+ int result = 0;
+ unsigned iters = 100;
    double wait_time = (std::min)(t.elapsed_min() * 1000, 1.0);
 
    while(true)
@@ -202,7 +204,7 @@
          ds.erase(ds.begin(), ds.end());
          std::copy(s2.begin(), s2.end(), std::back_inserter(ds));
 
- int i;
+ unsigned i;
          iters = 10;
          tim = 1.1;
 
@@ -217,7 +219,7 @@
 
          // measure time interval for basic_regex<char>
          do{
- iters *= (tim > 0.001) ? (1.1/tim) : 100;
+ iters *= static_cast<unsigned>((tim > 0.001) ? (1.1/tim) : 100);
             t.restart();
             for(i =0; i < iters; ++i)
             {
@@ -251,7 +253,7 @@
          // cache load:
          regex_search(ws2, wsm, wex);
          do{
- iters *= (tim > 0.001) ? (1.1/tim) : 100;
+ iters *= static_cast<unsigned>((tim > 0.001) ? (1.1/tim) : 100);
             t.restart();
             for(i = 0; i < iters; ++i)
             {
@@ -289,7 +291,7 @@
          // cache load:
          regex_search(ds.begin(), ds.end(), dm, ex);
          do{
- iters *= (tim > 0.001) ? (1.1/tim) : 100;
+ iters *= static_cast<unsigned>((tim > 0.001) ? (1.1/tim) : 100);
             t.restart();
             for(i = 0; i < iters; ++i)
             {
@@ -326,7 +328,7 @@
          // cache load:
          regexecA(&r, s2.c_str(), nsubs, matches.get(), 0);
          do{
- iters *= (tim > 0.001) ? (1.1/tim) : 100;
+ iters *= static_cast<unsigned>((tim > 0.001) ? (1.1/tim) : 100);
             t.restart();
             for(i = 0; i < iters; ++i)
             {
@@ -357,7 +359,7 @@
             ts.erase();
             ts.assign(s2.begin() + matches[0].rm_eo, s2.end());
             cout << ts;
- cout << "\" (matched=" << (matches[0].rm_eo != s2.size()) << ")" << endl << endl;
+ cout << "\" (matched=" << (matches[0].rm_eo != (int)s2.size()) << ")" << endl << endl;
          }
       }
       regfreeA(&r);

Modified: branches/release/libs/regex/performance/Jamfile.v2
==============================================================================
--- branches/release/libs/regex/performance/Jamfile.v2 (original)
+++ branches/release/libs/regex/performance/Jamfile.v2 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -48,6 +48,7 @@
     ;
 
 
+install . : regex_comparison ;
 
 
 

Modified: branches/release/libs/regex/src/cpp_regex_traits.cpp
==============================================================================
--- branches/release/libs/regex/src/cpp_regex_traits.cpp (original)
+++ branches/release/libs/regex/src/cpp_regex_traits.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -42,7 +42,7 @@
    std::messages<char>::catalog cat = reinterpret_cast<std::messages<char>::catalog>(-1);
 #endif
    std::string cat_name(cpp_regex_traits<char>::get_catalog_name());
- if(cat_name.size())
+ if(cat_name.size() && (m_pmessages != 0))
    {
       cat = this->m_pmessages->open(
          cat_name,

Modified: branches/release/libs/regex/src/cregex.cpp
==============================================================================
--- branches/release/libs/regex/src/cregex.cpp (original)
+++ branches/release/libs/regex/src/cregex.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -563,11 +563,7 @@
    return result;
 }
 
-#ifdef BOOST_HAS_LONG_LONG
-const std::size_t RegEx::npos = static_cast<std::size_t>(~0ULL);
-#else
-const std::size_t RegEx::npos = static_cast<std::size_t>(~0UL);
-#endif
+const std::size_t RegEx::npos = ~static_cast<std::size_t>(0);
 
 } // namespace boost
 

Modified: branches/release/libs/regex/src/fileiter.cpp
==============================================================================
--- branches/release/libs/regex/src/fileiter.cpp (original)
+++ branches/release/libs/regex/src/fileiter.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -258,11 +258,22 @@
             *p = 0;
             *(reinterpret_cast<int*>(*node)) = 1;
          }
- std::fseek(hfile, (node - _first) * buf_size, SEEK_SET);
- if(node == _last - 1)
- std::fread(*node + sizeof(int), _size % buf_size, 1, hfile);
- else
- std::fread(*node + sizeof(int), buf_size, 1, hfile);
+
+ std::size_t read_size = 0;
+ int read_pos = std::fseek(hfile, (node - _first) * buf_size, SEEK_SET);
+
+ if(0 == read_pos && node == _last - 1)
+ read_size = std::fread(*node + sizeof(int), _size % buf_size, 1, hfile);
+ else
+ read_size = std::fread(*node + sizeof(int), buf_size, 1, hfile);
+#ifndef BOOST_NO_EXCEPTIONS
+ if((read_size == 0) || (std::ferror(hfile)))
+ {
+ throw std::runtime_error("Unable to read file.");
+ }
+#else
+ BOOST_REGEX_NOEH_ASSERT((0 == std::ferror(hfile)) && (read_size != 0));
+#endif
       }
       else
       {

Modified: branches/release/libs/regex/src/posix_api.cpp
==============================================================================
--- branches/release/libs/regex/src/posix_api.cpp (original)
+++ branches/release/libs/regex/src/posix_api.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -58,6 +58,7 @@
       "REG_EMPTY",
       "REG_ECOMPLEXITY",
       "REG_ESTACK",
+ "REG_E_PERL",
       "REG_E_UNKNOWN",
 };
 } // namespace

Modified: branches/release/libs/regex/src/regex_traits_defaults.cpp
==============================================================================
--- branches/release/libs/regex/src/regex_traits_defaults.cpp (original)
+++ branches/release/libs/regex/src/regex_traits_defaults.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -111,30 +111,31 @@
 BOOST_REGEX_DECL const char* BOOST_REGEX_CALL get_default_error_string(regex_constants::error_type n)
 {
    static const char* const s_default_error_messages[] = {
- "Success", /* REG_NOERROR */
- "No match", /* REG_NOMATCH */
- "Invalid regular expression", /* REG_BADPAT */
- "Invalid collation character", /* REG_ECOLLATE */
- "Invalid character class name", /* REG_ECTYPE */
- "Invalid or trailing backslash", /* REG_EESCAPE */
- "Invalid back reference", /* REG_ESUBREG */
- "Unmatched [ or [^", /* REG_EBRACK */
- "Unmatched ( or \\(", /* REG_EPAREN */
- "Unmatched { or \\{", /* REG_EBRACE */
- "Invalid content of repeat range", /* REG_BADBR */
- "Invalid range end", /* REG_ERANGE */
- "Memory exhausted", /* REG_ESPACE */
- "Invalid preceding regular expression", /* REG_BADRPT */
- "Premature end of regular expression", /* REG_EEND */
- "Regular expression too big", /* REG_ESIZE */
- "Unmatched ) or \\)", /* REG_ERPAREN */
- "Empty expression", /* REG_EMPTY */
- "Complexity requirements exceeded", /* REG_ECOMPLEXITY */
- "Out of stack space", /* REG_ESTACK */
- "Unknown error", /* REG_E_UNKNOWN */
- "",
- "",
- "",
+ "Success", /* REG_NOERROR 0 error_ok */
+ "No match", /* REG_NOMATCH 1 error_no_match */
+ "Invalid regular expression.", /* REG_BADPAT 2 error_bad_pattern */
+ "Invalid collation character.", /* REG_ECOLLATE 3 error_collate */
+ "Invalid character class name, collating name, or character range.", /* REG_ECTYPE 4 error_ctype */
+ "Invalid or unterminated escape sequence.", /* REG_EESCAPE 5 error_escape */
+ "Invalid back reference: specified capturing group does not exist.", /* REG_ESUBREG 6 error_backref */
+ "Unmatched [ or [^ in character class declaration.", /* REG_EBRACK 7 error_brack */
+ "Unmatched marking parenthesis ( or \\(.", /* REG_EPAREN 8 error_paren */
+ "Unmatched quantified repeat operator { or \\{.", /* REG_EBRACE 9 error_brace */
+ "Invalid content of repeat range.", /* REG_BADBR 10 error_badbrace */
+ "Invalid range end in character class", /* REG_ERANGE 11 error_range */
+ "Out of memory.", /* REG_ESPACE 12 error_space NOT USED */
+ "Invalid preceding regular expression prior to repetition operator.", /* REG_BADRPT 13 error_badrepeat */
+ "Premature end of regular expression", /* REG_EEND 14 error_end NOT USED */
+ "Regular expression is too large.", /* REG_ESIZE 15 error_size NOT USED */
+ "Unmatched ) or \\)", /* REG_ERPAREN 16 error_right_paren NOT USED */
+ "Empty regular expression.", /* REG_EMPTY 17 error_empty */
+ "The complexity of matching the regular expression exceeded predefined bounds. "
+ "Try refactoring the regular expression to make each choice made by the state machine unambiguous. "
+ "This exception is thrown to prevent \"eternal\" matches that take an "
+ "indefinite period time to locate.", /* REG_ECOMPLEXITY 18 error_complexity */
+ "Ran out of stack space trying to match the regular expression.", /* REG_ESTACK 19 error_stack */
+ "Invalid or unterminated Perl (?...) sequence.", /* REG_E_PERL 20 error_perl */
+ "Unknown error.", /* REG_E_UNKNOWN 21 error_unknown */
    };
 
    return (n > ::boost::regex_constants::error_unknown) ? s_default_error_messages[ ::boost::regex_constants::error_unknown] : s_default_error_messages[n];

Modified: branches/release/libs/regex/src/static_mutex.cpp
==============================================================================
--- branches/release/libs/regex/src/static_mutex.cpp (original)
+++ branches/release/libs/regex/src/static_mutex.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -157,7 +157,7 @@
    {
        boost::call_once(static_mutex::m_once,&static_mutex::init);
       if(0 == m_plock)
- m_plock = new boost::recursive_mutex::scoped_lock(*static_mutex::m_pmutex, false);
+ m_plock = new boost::recursive_mutex::scoped_lock(*static_mutex::m_pmutex, boost::defer_lock);
       m_plock->lock();
       m_have_lock = true;
    }

Modified: branches/release/libs/regex/src/usinstances.cpp
==============================================================================
--- branches/release/libs/regex/src/usinstances.cpp (original)
+++ branches/release/libs/regex/src/usinstances.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -17,6 +17,9 @@
   */
 
 #define BOOST_REGEX_SOURCE
+#ifdef _MSC_VER
+#pragma warning(disable:4506) // 'no definition for inline function'
+#endif
 
 #include <boost/detail/workaround.hpp>
 #include <memory>

Modified: branches/release/libs/regex/src/wide_posix_api.cpp
==============================================================================
--- branches/release/libs/regex/src/wide_posix_api.cpp (original)
+++ branches/release/libs/regex/src/wide_posix_api.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -65,6 +65,7 @@
       L"REG_EMPTY",
       L"REG_ECOMPLEXITY",
       L"REG_ESTACK",
+ L"REG_E_PERL",
       L"REG_E_UNKNOWN",
 };
 }

Modified: branches/release/libs/regex/test/c_compiler_checks/posix_api_check.cpp
==============================================================================
--- branches/release/libs/regex/test/c_compiler_checks/posix_api_check.cpp (original)
+++ branches/release/libs/regex/test/c_compiler_checks/posix_api_check.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -34,13 +34,13 @@
 int main()
 {
    regex_tA re;
- int result;
+ unsigned int result;
    result = regcompA(&re, expression, REG_AWK);
    if(result > REG_NOERROR)
    {
       char buf[256];
       regerrorA(result, &re, buf, sizeof(buf));
- printf(buf);
+ printf("%s", buf);
       return result;
    }
    BOOST_TEST(re.re_nsub == 0);
@@ -51,11 +51,11 @@
    {
       char buf[256];
       regerrorA(result, &re, buf, sizeof(buf));
- printf(buf);
+ printf("%s", buf);
       regfreeA(&re);
       return result;
    }
- BOOST_TEST(matches[0].rm_so == matches[0].rm_eo == 1);
+ BOOST_TEST(matches[0].rm_so == matches[0].rm_eo);
    regfreeA(&re);
    printf("no errors found\n");
    return boost::report_errors();

Modified: branches/release/libs/regex/test/c_compiler_checks/wide_posix_api_check.cpp
==============================================================================
--- branches/release/libs/regex/test/c_compiler_checks/wide_posix_api_check.cpp (original)
+++ branches/release/libs/regex/test/c_compiler_checks/wide_posix_api_check.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -40,7 +40,7 @@
 int main()
 {
    regex_t re;
- int result;
+ unsigned result;
    result = regcomp(&re, expression, REG_AWK);
    if(result > REG_NOERROR)
    {
@@ -48,8 +48,8 @@
       regerror(result, &re, buf, sizeof(buf));
       char nbuf[256];
       for(int i = 0; i < 256; ++i)
- nbuf[i] = buf[i];
- printf(nbuf);
+ nbuf[i] = static_cast<char>(buf[i]);
+ printf("%s", nbuf);
       return result;
    }
    if(re.re_nsub != 0)
@@ -66,8 +66,8 @@
       regerror(result, &re, buf, sizeof(buf));
       char nbuf[256];
       for(int i = 0; i < 256; ++i)
- nbuf[i] = buf[i];
- printf(nbuf);
+ nbuf[i] = static_cast<char>(buf[i]);
+ printf("%s", nbuf);
       regfree(&re);
       return result;
    }
@@ -77,7 +77,7 @@
       exit(-1);
    }
    regfree(&re);
- printf("no errors found\n");
+ printf("%s", "no errors found\n");
    return 0;
 }
 

Modified: branches/release/libs/regex/test/concepts/icu_concept_check.cpp
==============================================================================
--- branches/release/libs/regex/test/concepts/icu_concept_check.cpp (original)
+++ branches/release/libs/regex/test/concepts/icu_concept_check.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -8,6 +8,13 @@
  * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  *
  */
+
+//
+// This define keep ICU in it's own namespace: helps us to track bugs that would
+// otherwise go unnoticed:
+//
+#define U_USING_ICU_NAMESPACE 0
+
 #include <boost/regex/config.hpp>
 
 #if defined(BOOST_MSVC)
@@ -66,7 +73,7 @@
    boost::regex_constants::match_flag_type flgs = boost::regex_constants::match_default;
    std::string s1;
    std::wstring s2;
- UnicodeString us;
+ U_NAMESPACE_QUALIFIER UnicodeString us;
    b = boost::u32regex_match(utf8_arch1(), utf8_arch1(), m1, e1, flgs);
    b = boost::u32regex_match(utf8_arch1(), utf8_arch1(), m1, e1);
    b = boost::u32regex_match(utf8_arch2(), utf8_arch2(), m2, e1, flgs);

Modified: branches/release/libs/regex/test/regress/test_deprecated.cpp
==============================================================================
--- branches/release/libs/regex/test/regress/test_deprecated.cpp (original)
+++ branches/release/libs/regex/test/regress/test_deprecated.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -137,7 +137,7 @@
    if(test_info<char>::syntax_options() & ~boost::regex::icase)
       return;
    try{
- boost::RegEx e(expression, test_info<char>::syntax_options() & boost::regex::icase);
+ boost::RegEx e(expression, (test_info<char>::syntax_options() & boost::regex::icase) != 0);
       if(e.error_code())
       {
          BOOST_REGEX_TEST_ERROR("Expression did not compile when it should have done, error code = " << e.error_code(), char);
@@ -303,7 +303,7 @@
       return;
    bool have_catch = false;
    try{
- boost::RegEx e(expression, test_info<char>::syntax_options() & boost::regex::icase);
+ boost::RegEx e(expression, (test_info<char>::syntax_options() & boost::regex::icase) != 0);
       if(e.error_code())
          have_catch = true;
    }

Modified: branches/release/libs/regex/test/regress/test_escapes.cpp
==============================================================================
--- branches/release/libs/regex/test/regress/test_escapes.cpp (original)
+++ branches/release/libs/regex/test/regress/test_escapes.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -12,7 +12,7 @@
 #include "test.hpp"
 
 #ifdef BOOST_MSVC
-#pragma warning(disable:4127)
+#pragma warning(disable:4127 4428)
 #endif
 
 void test_character_escapes()

Modified: branches/release/libs/regex/test/regress/test_icu.cpp
==============================================================================
--- branches/release/libs/regex/test/regress/test_icu.cpp (original)
+++ branches/release/libs/regex/test/regress/test_icu.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -564,7 +564,7 @@
          //
          // Now with UnicodeString:
          //
- UnicodeString expression16u, text16u, format16u, result16u, found16u;
+ U_NAMESPACE_QUALIFIER UnicodeString expression16u, text16u, format16u, result16u, found16u;
          if(expression16.size())
             expression16u.setTo(&*expression16.begin(), expression16.size());
          if(text16.size())

Modified: branches/release/libs/regex/test/regress/test_not_regex.hpp
==============================================================================
--- branches/release/libs/regex/test/regress/test_not_regex.hpp (original)
+++ branches/release/libs/regex/test/regress/test_not_regex.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -86,15 +86,15 @@
       have_catch = true;
       test_empty(r);
    }
- catch(const std::runtime_error& r)
+ catch(const std::runtime_error& e)
    {
       have_catch = true;
- BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::runtime_error instead: " << r.what(), charT);
+ BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::runtime_error instead: " << e.what(), charT);
    }
- catch(const std::exception& r)
+ catch(const std::exception& e)
    {
       have_catch = true;
- BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::exception instead: " << r.what(), charT);
+ BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::exception instead: " << e.what(), charT);
    }
    catch(...)
    {

Modified: branches/release/libs/regex/test/regress/test_regex_replace.hpp
==============================================================================
--- branches/release/libs/regex/test/regress/test_regex_replace.hpp (original)
+++ branches/release/libs/regex/test/regress/test_regex_replace.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -56,13 +56,13 @@
    {
       BOOST_REGEX_TEST_ERROR("Expression did not compile when it should have done: " << e.what(), charT);
    }
- catch(const std::runtime_error& r)
+ catch(const std::runtime_error& e)
    {
- BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << r.what(), charT);
+ BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << e.what(), charT);
    }
- catch(const std::exception& r)
+ catch(const std::exception& e)
    {
- BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << r.what(), charT);
+ BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << e.what(), charT);
    }
    catch(...)
    {

Modified: branches/release/libs/regex/test/regress/test_regex_search.hpp
==============================================================================
--- branches/release/libs/regex/test/regress/test_regex_search.hpp (original)
+++ branches/release/libs/regex/test/regress/test_regex_search.hpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -29,12 +29,17 @@
 struct test_regex_search_tag{};
 
 template <class BidirectionalIterator>
-void test_sub_match(const boost::sub_match<BidirectionalIterator>& sub, BidirectionalIterator base, const int* answer_table, int i)
+void test_sub_match(const boost::sub_match<BidirectionalIterator>& sub, BidirectionalIterator base, const int* answer_table, int i, bool recurse = true)
 {
 #ifdef BOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4244)
 #endif
+ if(recurse)
+ {
+ boost::sub_match<BidirectionalIterator> copy(sub);
+ test_sub_match(copy, base, answer_table, i, false);
+ }
    typedef typename boost::sub_match<BidirectionalIterator>::value_type charT;
    if((sub.matched == 0)
       &&
@@ -71,8 +76,19 @@
 }
 
 template <class BidirectionalIterator, class Allocator>
-void test_result(const boost::match_results<BidirectionalIterator, Allocator>& what, BidirectionalIterator base, const int* answer_table)
+void test_result(const boost::match_results<BidirectionalIterator, Allocator>& what, BidirectionalIterator base, const int* answer_table, bool recurse = true)
 {
+ if(recurse)
+ {
+ boost::match_results<BidirectionalIterator, Allocator> copy(what);
+ test_result(copy, base, answer_table, false);
+ boost::match_results<BidirectionalIterator, Allocator> s;
+ s.swap(copy);
+ test_result(s, base, answer_table, false);
+ boost::match_results<BidirectionalIterator, Allocator> s2;
+ s2 = what;
+ test_result(s2, base, answer_table, false);
+ }
    for(unsigned i = 0; i < what.size(); ++i)
    {
       test_sub_match(what[i], base, answer_table, i);
@@ -508,13 +524,13 @@
    {
       BOOST_REGEX_TEST_ERROR("Expression did not compile when it should have done: " << e.what(), charT);
    }
- catch(const std::runtime_error& r)
+ catch(const std::runtime_error& e)
    {
- BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << r.what(), charT);
+ BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << e.what(), charT);
    }
- catch(const std::exception& r)
+ catch(const std::exception& e)
    {
- BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << r.what(), charT);
+ BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << e.what(), charT);
    }
    catch(...)
    {

Modified: branches/release/libs/regex/test/regress/test_simple_repeats.cpp
==============================================================================
--- branches/release/libs/regex/test/regress/test_simple_repeats.cpp (original)
+++ branches/release/libs/regex/test/regress/test_simple_repeats.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -172,6 +172,7 @@
    TEST_REGEX_SEARCH("^a{0,1}?$", perl, "aaaaa", match_default, make_array(-2, -2));
    TEST_REGEX_SEARCH("^(?:a){0,1}?$", perl, "aaaaa", match_default, make_array(-2, -2));
    TEST_REGEX_SEARCH("^a(?:bc)?", perl, "abcbc", match_any|match_all, make_array(-2, -2));
+ test_simple_repeats2();
 }
 
 void test_simple_repeats2()

Modified: branches/release/libs/regex/test/static_mutex/static_mutex_test.cpp
==============================================================================
--- branches/release/libs/regex/test/static_mutex/static_mutex_test.cpp (original)
+++ branches/release/libs/regex/test/static_mutex/static_mutex_test.cpp 2009-12-08 07:42:33 EST (Tue, 08 Dec 2009)
@@ -161,7 +161,7 @@
 
 int main()
 {
- BOOST_TEST(0 != &up1);
+ (void)up1;
    
    std::list<boost::shared_ptr<boost::thread> > threads;
    for(int i = 0; i < 2; ++i)


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk