diff --git a/include/cpp2regex.h b/include/cpp2regex.h index ed01c237a..74d6c5574 100644 --- a/include/cpp2regex.h +++ b/include/cpp2regex.h @@ -10,160 +10,160 @@ #line 1 "regex.h2" -#line 21 "regex.h2" +#line 23 "regex.h2" namespace cpp2 { namespace regex { -#line 37 "regex.h2" +#line 39 "regex.h2" class expression_flags; -#line 48 "regex.h2" +#line 50 "regex.h2" template<typename Iter> class match_group; -#line 57 "regex.h2" +#line 59 "regex.h2" template<typename Iter> class match_return; -#line 64 "regex.h2" +#line 66 "regex.h2" template<typename CharT, typename Iter, int max_groups> class match_context; -#line 126 "regex.h2" +#line 128 "regex.h2" class true_end_func; -#line 132 "regex.h2" +#line 134 "regex.h2" class no_reset; -#line 137 "regex.h2" +#line 139 "regex.h2" template<typename Func> class on_return; -#line 162 "regex.h2" +#line 164 "regex.h2" template<typename CharT, CharT C> class single_class_entry; -#line 170 "regex.h2" +#line 172 "regex.h2" template<typename CharT, CharT Start, CharT End> class range_class_entry; -#line 178 "regex.h2" +#line 180 "regex.h2" template<typename CharT, typename ...List> class combined_class_entry; -#line 185 "regex.h2" +#line 187 "regex.h2" template<typename CharT, CharT ...List> class list_class_entry; -#line 192 "regex.h2" +#line 194 "regex.h2" template<typename CharT, string_util::fixed_string Name, typename Inner> class named_class_entry; -#line 197 "regex.h2" +#line 199 "regex.h2" template<typename CharT, typename Inner> class negated_class_entry; -#line 204 "regex.h2" +#line 206 "regex.h2" template<typename CharT, string_util::fixed_string Name, typename Inner> class shorthand_class_entry; -#line 256 "regex.h2" +#line 258 "regex.h2" class regex_token; -#line 281 "regex.h2" +#line 283 "regex.h2" class regex_token_check; -#line 297 "regex.h2" +#line 299 "regex.h2" class regex_token_code; -#line 313 "regex.h2" +#line 315 "regex.h2" class regex_token_empty; -#line 327 "regex.h2" +#line 329 "regex.h2" class regex_token_list; -#line 367 "regex.h2" +#line 369 "regex.h2" class parse_context_group_state; -#line 428 "regex.h2" +#line 430 "regex.h2" class parse_context_branch_reset_state; -#line 469 "regex.h2" +#line 471 "regex.h2" class parse_context; -#line 851 "regex.h2" +#line 853 "regex.h2" class generation_function_context; -#line 868 "regex.h2" +#line 870 "regex.h2" class generation_context; -#line 1063 "regex.h2" +#line 1065 "regex.h2" class alternative_token; -#line 1077 "regex.h2" +#line 1079 "regex.h2" class alternative_token_gen; -#line 1122 "regex.h2" +#line 1124 "regex.h2" template<typename CharT> class alternative_token_matcher; -#line 1148 "regex.h2" +#line 1150 "regex.h2" class any_token; -#line 1175 "regex.h2" +#line 1177 "regex.h2" class char_token; -#line 1303 "regex.h2" +#line 1305 "regex.h2" class class_token; -#line 1438 "regex.h2" +#line 1440 "regex.h2" template<typename CharT, bool negate, bool case_insensitive, typename ...List> class class_token_matcher; -#line 1538 "regex.h2" +#line 1540 "regex.h2" class group_ref_token; -#line 1682 "regex.h2" +#line 1684 "regex.h2" class group_token; -#line 1966 "regex.h2" +#line 1968 "regex.h2" class lookahead_token; -#line 2068 "regex.h2" +#line 2070 "regex.h2" class range_flags; -#line 2076 "regex.h2" +#line 2078 "regex.h2" class range_token; -#line 2213 "regex.h2" +#line 2215 "regex.h2" template<typename CharT, int min_count, int max_count, int kind> class range_token_matcher; -#line 2338 "regex.h2" +#line 2340 "regex.h2" class special_range_token; -#line 2425 "regex.h2" +#line 2427 "regex.h2" template<typename CharT, typename matcher_wrapper> class regular_expression; -#line 2514 "regex.h2" +#line 2516 "regex.h2" template<typename Error_out> class regex_generator; -#line 2586 "regex.h2" +#line 2588 "regex.h2" } } @@ -188,10 +188,12 @@ template<typename Error_out> class regex_generator; template<typename matcher_wrapper, typename Iter, typename CharT> using matcher_wrapper_type = typename matcher_wrapper::template wrap<Iter, CharT>; +template<typename matcher> +using matcher_context_type = typename matcher::context; using error_func = std::function<void(std::string)>; -#line 21 "regex.h2" +#line 23 "regex.h2" namespace cpp2 { namespace regex { @@ -199,7 +201,7 @@ namespace regex { template<typename CharT> using bview = std::basic_string_view<CharT>; template<typename CharT> using bstring = std::basic_string<CharT>; -#line 37 "regex.h2" +#line 39 "regex.h2" class expression_flags { private: cpp2::u8 _value; private: constexpr expression_flags(cpp2::impl::in<cpp2::i64> _val); @@ -229,10 +231,10 @@ public: constexpr auto operator=(expression_flags&& that) noexcept -> expression public: [[nodiscard]] auto operator<=>(expression_flags const& that) const& -> std::strong_ordering = default; public: [[nodiscard]] auto to_string() const& -> std::string; -#line 44 "regex.h2" +#line 46 "regex.h2" }; -#line 48 "regex.h2" +#line 50 "regex.h2" template<typename Iter> class match_group { public: Iter start {}; public: Iter end {}; @@ -240,13 +242,13 @@ template<typename Iter> class match_group { public: bool matched {false}; }; -#line 57 "regex.h2" +#line 59 "regex.h2" template<typename Iter> class match_return { public: bool matched {false}; public: Iter pos {}; }; -#line 64 "regex.h2" +#line 66 "regex.h2" template<typename CharT, typename Iter, int max_groups> class match_context { public: Iter begin; @@ -256,76 +258,76 @@ template<typename CharT, typename Iter, int max_groups> class match_context public: explicit match_context(Iter const& begin_, Iter const& end_); -#line 76 "regex.h2" +#line 78 "regex.h2" public: match_context(match_context const& that); -#line 76 "regex.h2" +#line 78 "regex.h2" public: auto operator=(match_context const& that) -> match_context& ; -#line 76 "regex.h2" +#line 78 "regex.h2" public: match_context(match_context&& that) noexcept; -#line 76 "regex.h2" +#line 78 "regex.h2" public: auto operator=(match_context&& that) noexcept -> match_context& ; -#line 80 "regex.h2" +#line 82 "regex.h2" public: [[nodiscard]] auto get_group(auto const& group) const& -> auto; public: [[nodiscard]] auto get_group_end(auto const& group) const& -> int; -#line 88 "regex.h2" +#line 90 "regex.h2" public: [[nodiscard]] auto get_group_start(auto const& group) const& -> int; -#line 94 "regex.h2" +#line 96 "regex.h2" public: [[nodiscard]] auto get_group_string(auto const& group) const& -> std::string; -#line 101 "regex.h2" +#line 103 "regex.h2" public: auto set_group_end(auto const& group, auto const& pos) & -> void; -#line 106 "regex.h2" +#line 108 "regex.h2" public: auto set_group_invalid(auto const& group) & -> void; -#line 110 "regex.h2" +#line 112 "regex.h2" public: auto set_group_start(auto const& group, auto const& pos) & -> void; -#line 114 "regex.h2" +#line 116 "regex.h2" public: [[nodiscard]] auto size() const& -> auto; -#line 119 "regex.h2" +#line 121 "regex.h2" public: [[nodiscard]] auto fail() const& -> auto; public: [[nodiscard]] auto pass(cpp2::impl::in<Iter> cur) const& -> auto; }; -#line 126 "regex.h2" +#line 128 "regex.h2" class true_end_func { public: [[nodiscard]] auto operator()(auto const& cur, auto& ctx) const& -> auto; }; -#line 132 "regex.h2" +#line 134 "regex.h2" class no_reset { public: auto operator()([[maybe_unused]] auto& unnamed_param_2) const& -> void; }; -#line 137 "regex.h2" +#line 139 "regex.h2" template<typename Func> class on_return { private: Func func; public: explicit on_return(Func const& f); -#line 141 "regex.h2" +#line 143 "regex.h2" public: auto operator=(Func const& f) -> on_return& ; -#line 145 "regex.h2" +#line 147 "regex.h2" public: ~on_return() noexcept; public: on_return(on_return const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(on_return const&) -> void = delete; -#line 148 "regex.h2" +#line 150 "regex.h2" }; -#line 151 "regex.h2" +#line 153 "regex.h2" template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> auto; -#line 162 "regex.h2" +#line 164 "regex.h2" template<typename CharT, CharT C> class single_class_entry { public: [[nodiscard]] static auto includes(cpp2::impl::in<CharT> c) -> auto; @@ -334,10 +336,10 @@ template<typename CharT, CharT C> class single_class_entry public: single_class_entry(single_class_entry const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(single_class_entry const&) -> void = delete; -#line 166 "regex.h2" +#line 168 "regex.h2" }; -#line 170 "regex.h2" +#line 172 "regex.h2" template<typename CharT, CharT Start, CharT End> class range_class_entry { public: [[nodiscard]] static auto includes(cpp2::impl::in<CharT> c) -> auto; @@ -346,10 +348,10 @@ template<typename CharT, CharT Start, CharT End> class range_class_entry public: range_class_entry(range_class_entry const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(range_class_entry const&) -> void = delete; -#line 174 "regex.h2" +#line 176 "regex.h2" }; -#line 178 "regex.h2" +#line 180 "regex.h2" template<typename CharT, typename ...List> class combined_class_entry { public: [[nodiscard]] static auto includes(cpp2::impl::in<CharT> c) -> auto; public: [[nodiscard]] static auto to_string() -> auto; @@ -357,10 +359,10 @@ template<typename CharT, typename ...List> class combined_class_entry { public: combined_class_entry(combined_class_entry const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(combined_class_entry const&) -> void = delete; -#line 181 "regex.h2" +#line 183 "regex.h2" }; -#line 185 "regex.h2" +#line 187 "regex.h2" template<typename CharT, CharT ...List> class list_class_entry { public: [[nodiscard]] static auto includes(cpp2::impl::in<CharT> c) -> auto; public: [[nodiscard]] static auto to_string() -> auto; @@ -368,10 +370,10 @@ template<typename CharT, CharT ...List> class list_class_entry { public: list_class_entry(list_class_entry const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(list_class_entry const&) -> void = delete; -#line 188 "regex.h2" +#line 190 "regex.h2" }; -#line 192 "regex.h2" +#line 194 "regex.h2" template<typename CharT, string_util::fixed_string Name, typename Inner> class named_class_entry { public: [[nodiscard]] static auto includes(cpp2::impl::in<CharT> c) -> auto; public: [[nodiscard]] static auto to_string() -> auto; @@ -379,7 +381,7 @@ template<typename CharT, string_util::fixed_string Name, typename Inner> class n public: named_class_entry(named_class_entry const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(named_class_entry const&) -> void = delete; -#line 195 "regex.h2" +#line 197 "regex.h2" }; template<typename CharT, typename Inner> class negated_class_entry: public Inner { @@ -389,10 +391,10 @@ template<typename CharT, typename Inner> class negated_class_entry: public Inner public: negated_class_entry(negated_class_entry const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(negated_class_entry const&) -> void = delete; -#line 200 "regex.h2" +#line 202 "regex.h2" }; -#line 204 "regex.h2" +#line 206 "regex.h2" template<typename CharT, string_util::fixed_string Name, typename Inner> class shorthand_class_entry { public: [[nodiscard]] static auto includes(cpp2::impl::in<CharT> c) -> auto; public: [[nodiscard]] static auto to_string() -> auto; @@ -400,15 +402,15 @@ template<typename CharT, string_util::fixed_string Name, typename Inner> class s public: shorthand_class_entry(shorthand_class_entry const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(shorthand_class_entry const&) -> void = delete; -#line 207 "regex.h2" +#line 209 "regex.h2" }; -#line 212 "regex.h2" +#line 214 "regex.h2" template <typename CharT> using digits_class = named_class_entry<CharT,"digits",range_class_entry<CharT,'0','9'>>; template <typename CharT> using lower_class = named_class_entry<CharT,"lower",range_class_entry<CharT,'a','z'>>; template <typename CharT> using upper_class = named_class_entry<CharT,"upper",range_class_entry<CharT,'A','Z'>>; -#line 218 "regex.h2" +#line 220 "regex.h2" template <typename CharT> using alnum_class = named_class_entry<CharT,"alnum",combined_class_entry<CharT,lower_class<CharT>,upper_class<CharT>,digits_class<CharT>>>; template <typename CharT> using alpha_class = named_class_entry<CharT,"alpha",combined_class_entry<CharT,lower_class<CharT>,upper_class<CharT>>>; template <typename CharT> using ascii_class = named_class_entry<CharT,"ascii",range_class_entry<CharT,'\x00','\x7F'>>; @@ -423,31 +425,31 @@ template<typename CharT> using ver_space_class = named_class_entry<CharT,"vspace template <typename CharT> using word_class = named_class_entry<CharT,"word",combined_class_entry<CharT,alnum_class<CharT>,single_class_entry<CharT,'_'>>>; template <typename CharT> using xdigit_class = named_class_entry<CharT,"xdigit",combined_class_entry<CharT,range_class_entry<CharT,'A','F'>,range_class_entry<CharT,'a','f'>,digits_class<CharT>>>; -#line 234 "regex.h2" +#line 236 "regex.h2" template <typename CharT> using short_digits_class = shorthand_class_entry<CharT,"\\d",digits_class<CharT>>; template <typename CharT> using short_hor_space_class = shorthand_class_entry<CharT,"\\h",hor_space_class<CharT>>; template <typename CharT> using short_space_class = shorthand_class_entry<CharT,"\\s",space_class<CharT>>; template<typename CharT> using short_vert_space_class = shorthand_class_entry<CharT,"\\v",ver_space_class<CharT>>; template <typename CharT> using short_word_class = shorthand_class_entry<CharT,"\\w",word_class<CharT>>; -#line 241 "regex.h2" +#line 243 "regex.h2" template <typename CharT> using short_not_digits_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\D",digits_class<CharT>>>; template <typename CharT> using short_not_hor_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\H",hor_space_class<CharT>>>; template <typename CharT> using short_not_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\S",space_class<CharT>>>; template<typename CharT> using short_not_vert_space_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\V",ver_space_class<CharT>>>; template <typename CharT> using short_not_word_class = negated_class_entry<CharT,shorthand_class_entry<CharT,"\\W",word_class<CharT>>>; -#line 256 "regex.h2" +#line 258 "regex.h2" class regex_token { public: std::string string_rep; public: explicit regex_token(cpp2::impl::in<std::string> str); -#line 264 "regex.h2" +#line 266 "regex.h2" public: explicit regex_token(); -#line 269 "regex.h2" +#line 271 "regex.h2" public: virtual auto generate_code([[maybe_unused]] generation_context& unnamed_param_2) const -> void = 0; public: virtual auto add_groups([[maybe_unused]] std::set<int>& unnamed_param_2) const -> void; @@ -458,7 +460,7 @@ class regex_token { public: regex_token(regex_token const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(regex_token const&) -> void = delete; -#line 274 "regex.h2" +#line 276 "regex.h2" }; using token_ptr = std::shared_ptr<regex_token>; @@ -468,12 +470,12 @@ using token_vec = std::vector<token_ptr>; // class regex_token_check: public regex_token { -#line 284 "regex.h2" +#line 286 "regex.h2" private: std::string check; public: explicit regex_token_check(cpp2::impl::in<std::string> str, cpp2::impl::in<std::string> check_); -#line 291 "regex.h2" +#line 293 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; public: virtual ~regex_token_check() noexcept; @@ -481,18 +483,18 @@ class regex_token_check: public regex_token { public: auto operator=(regex_token_check const&) -> void = delete; -#line 294 "regex.h2" +#line 296 "regex.h2" }; // Adds code in code generation. class regex_token_code: public regex_token { -#line 300 "regex.h2" +#line 302 "regex.h2" private: std::string code; public: explicit regex_token_code(cpp2::impl::in<std::string> str, cpp2::impl::in<std::string> code_); -#line 307 "regex.h2" +#line 309 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; public: virtual ~regex_token_code() noexcept; @@ -500,16 +502,16 @@ class regex_token_code: public regex_token { public: auto operator=(regex_token_code const&) -> void = delete; -#line 310 "regex.h2" +#line 312 "regex.h2" }; // Token that does not influence the matching. E.g. comment. class regex_token_empty: public regex_token { -#line 316 "regex.h2" +#line 318 "regex.h2" public: explicit regex_token_empty(cpp2::impl::in<std::string> str); -#line 320 "regex.h2" +#line 322 "regex.h2" public: auto generate_code([[maybe_unused]] generation_context& unnamed_param_2) const -> void override; public: virtual ~regex_token_empty() noexcept; @@ -517,25 +519,25 @@ class regex_token_empty: public regex_token { public: auto operator=(regex_token_empty const&) -> void = delete; -#line 323 "regex.h2" +#line 325 "regex.h2" }; // Represents a list of regex tokens as one token. // class regex_token_list: public regex_token { -#line 330 "regex.h2" +#line 332 "regex.h2" public: token_vec tokens; public: explicit regex_token_list(cpp2::impl::in<token_vec> t); -#line 337 "regex.h2" +#line 339 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; -#line 343 "regex.h2" +#line 345 "regex.h2" public: auto add_groups(std::set<int>& groups) const -> void override; -#line 349 "regex.h2" +#line 351 "regex.h2" public: [[nodiscard]] static auto gen_string(cpp2::impl::in<token_vec> vec) -> std::string; public: virtual ~regex_token_list() noexcept; @@ -543,7 +545,7 @@ class regex_token_list: public regex_token { public: auto operator=(regex_token_list const&) -> void = delete; -#line 356 "regex.h2" +#line 358 "regex.h2" }; //----------------------------------------------------------------------- @@ -557,7 +559,7 @@ class regex_token_list: public regex_token { // class parse_context_group_state { -#line 370 "regex.h2" +#line 372 "regex.h2" public: token_vec cur_match_list {}; // Current list of matchers. public: token_vec alternate_match_lists {}; // List of alternate matcher lists. E.g. ab|cd|xy. public: expression_flags modifiers {}; // Current modifiers for the group/regular expression. @@ -565,27 +567,27 @@ class parse_context_group_state { // Start a new alternative. public: auto next_alternative() & -> void; -#line 382 "regex.h2" +#line 384 "regex.h2" // Swap this state with the other one. public: auto swap(parse_context_group_state& t) & -> void; -#line 389 "regex.h2" +#line 391 "regex.h2" // Convert this state into a regex token. public: [[nodiscard]] auto get_as_token() & -> token_ptr; -#line 401 "regex.h2" +#line 403 "regex.h2" // Add a token to the current matcher list. public: auto add(cpp2::impl::in<token_ptr> token) & -> void; -#line 406 "regex.h2" +#line 408 "regex.h2" // True if current matcher list is empty. public: [[nodiscard]] auto empty() const& -> bool; -#line 410 "regex.h2" +#line 412 "regex.h2" // Apply optimizations to the matcher list. public: static auto post_process_list(token_vec& list) -> void; -#line 424 "regex.h2" +#line 426 "regex.h2" }; // State for the branch reset. Takes care of the group numbering. See '(|<pattern>)'. @@ -599,19 +601,19 @@ class parse_context_branch_reset_state { // Next group identifier. public: [[nodiscard]] auto next() & -> int; -#line 443 "regex.h2" +#line 445 "regex.h2" // Set next group identifier. public: auto set_next(cpp2::impl::in<int> g) & -> void; -#line 449 "regex.h2" +#line 451 "regex.h2" // Start a new alternative branch. public: auto next_alternative() & -> void; -#line 456 "regex.h2" +#line 458 "regex.h2" // Initialize for a branch reset group. public: auto set_active_reset(cpp2::impl::in<int> restart) & -> void; -#line 463 "regex.h2" +#line 465 "regex.h2" }; // Context during parsing of the regular expressions. @@ -626,7 +628,7 @@ class parse_context { private: parse_context_group_state cur_group_state {}; private: parse_context_branch_reset_state cur_branch_reset_state {}; -#line 478 "regex.h2" +#line 480 "regex.h2" public: std::map<std::string,int> named_groups {}; private: error_func error_out; // TODO: Declaring std::function<void(std::string)> fails for cpp2. @@ -634,66 +636,66 @@ class parse_context { public: explicit parse_context(cpp2::impl::in<std::string_view> r, auto const& e); -#line 489 "regex.h2" +#line 491 "regex.h2" // State management functions // // Returned group state needs to be stored and provided in `end_group`. public: [[nodiscard]] auto start_group() & -> parse_context_group_state; -#line 501 "regex.h2" +#line 503 "regex.h2" // `old_state` argument needs to be from start group. public: [[nodiscard]] auto end_group(cpp2::impl::in<parse_context_group_state> old_state) & -> token_ptr; -#line 508 "regex.h2" +#line 510 "regex.h2" public: [[nodiscard]] auto get_modifiers() const& -> expression_flags; -#line 512 "regex.h2" +#line 514 "regex.h2" public: auto set_modifiers(cpp2::impl::in<expression_flags> mod) & -> void; -#line 516 "regex.h2" +#line 518 "regex.h2" // Branch reset management functions // public: [[nodiscard]] auto branch_reset_new_state() & -> parse_context_branch_reset_state; -#line 527 "regex.h2" +#line 529 "regex.h2" public: auto branch_reset_restore_state(cpp2::impl::in<parse_context_branch_reset_state> old_state) & -> void; -#line 533 "regex.h2" +#line 535 "regex.h2" public: auto next_alternative() & -> void; -#line 538 "regex.h2" +#line 540 "regex.h2" // Regex token management // public: auto add_token(cpp2::impl::in<token_ptr> token) & -> void; -#line 545 "regex.h2" +#line 547 "regex.h2" public: [[nodiscard]] auto has_token() const& -> bool; -#line 549 "regex.h2" +#line 551 "regex.h2" public: [[nodiscard]] auto pop_token() & -> token_ptr; -#line 559 "regex.h2" +#line 561 "regex.h2" public: [[nodiscard]] auto get_as_token() & -> token_ptr; -#line 563 "regex.h2" +#line 565 "regex.h2" // Group management // public: [[nodiscard]] auto get_cur_group() const& -> int; -#line 570 "regex.h2" +#line 572 "regex.h2" public: [[nodiscard]] auto next_group() & -> int; -#line 574 "regex.h2" +#line 576 "regex.h2" public: auto set_named_group(cpp2::impl::in<std::string> name, cpp2::impl::in<int> id) & -> void; -#line 580 "regex.h2" +#line 582 "regex.h2" public: [[nodiscard]] auto get_named_group(cpp2::impl::in<std::string> name) const& -> int; -#line 590 "regex.h2" +#line 592 "regex.h2" // Position management functions // @@ -702,36 +704,36 @@ class parse_context { // Get the next token in the regex, skipping spaces according to the parameters. See `x` and `xx` modifiers. private: [[nodiscard]] auto get_next_position(cpp2::impl::in<bool> in_class, cpp2::impl::in<bool> no_skip) const& -> size_t; -#line 634 "regex.h2" +#line 636 "regex.h2" // Return true if next token is available. private: [[nodiscard]] auto next_impl(cpp2::impl::in<bool> in_class, cpp2::impl::in<bool> no_skip) & -> bool; -#line 645 "regex.h2" +#line 647 "regex.h2" public: [[nodiscard]] auto next() & -> auto; public: [[nodiscard]] auto next_in_class() & -> auto; public: [[nodiscard]] auto next_no_skip() & -> auto; public: [[nodiscard]] auto next_n(cpp2::impl::in<int> n) & -> bool; -#line 658 "regex.h2" +#line 660 "regex.h2" public: [[nodiscard]] auto has_next() const& -> bool; private: [[nodiscard]] auto grab_until_impl(cpp2::impl::in<std::string> e, cpp2::impl::out<std::string> r, cpp2::impl::in<bool> any) & -> bool; -#line 680 "regex.h2" +#line 682 "regex.h2" public: [[nodiscard]] auto grab_until(cpp2::impl::in<std::string> e, cpp2::impl::out<std::string> r) & -> auto; public: [[nodiscard]] auto grab_until(cpp2::impl::in<char> e, cpp2::impl::out<std::string> r) & -> auto; public: [[nodiscard]] auto grab_until_one_of(cpp2::impl::in<std::string> e, cpp2::impl::out<std::string> r) & -> auto; public: [[nodiscard]] auto grab_n(cpp2::impl::in<int> n, cpp2::impl::out<std::string> r) & -> bool; -#line 696 "regex.h2" +#line 698 "regex.h2" public: [[nodiscard]] auto grab_number() & -> std::string; -#line 716 "regex.h2" +#line 718 "regex.h2" private: [[nodiscard]] auto peek_impl(cpp2::impl::in<bool> in_class) const& -> char; -#line 726 "regex.h2" +#line 728 "regex.h2" public: [[nodiscard]] auto peek() const& -> auto; public: [[nodiscard]] auto peek_in_class() const& -> auto; @@ -740,17 +742,17 @@ class parse_context { public: [[nodiscard]] auto parser_group_modifiers(cpp2::impl::in<std::string> change_str, expression_flags& parser_modifiers) & -> bool; -#line 784 "regex.h2" +#line 786 "regex.h2" public: [[nodiscard]] auto parse_until(cpp2::impl::in<char> term) & -> bool; -#line 821 "regex.h2" +#line 823 "regex.h2" public: [[nodiscard]] auto parse(cpp2::impl::in<std::string> modifiers) & -> bool; -#line 835 "regex.h2" +#line 837 "regex.h2" // Misc functions public: [[nodiscard]] auto get_pos() const& -> auto; - public: [[nodiscard]] auto get_range(cpp2::impl::in<int> start, cpp2::impl::in<int> end) const& -> auto; + public: [[nodiscard]] auto get_range(cpp2::impl::in<size_t> start, cpp2::impl::in<size_t> end) const& -> auto; public: [[nodiscard]] auto valid() const& -> bool; public: [[nodiscard]] auto error(cpp2::impl::in<std::string> err) & -> token_ptr; @@ -758,7 +760,7 @@ class parse_context { public: auto operator=(parse_context const&) -> void = delete; -#line 846 "regex.h2" +#line 848 "regex.h2" }; // Context for one function generation. Generation of functions can be interleaved, therefore we buffer the code for one @@ -770,10 +772,10 @@ class generation_function_context { public: auto add_tabs(cpp2::impl::in<int> c) & -> void; -#line 862 "regex.h2" +#line 864 "regex.h2" public: auto remove_tabs(cpp2::impl::in<int> c) & -> void; -#line 865 "regex.h2" +#line 867 "regex.h2" }; // Context for generating the state machine. @@ -796,71 +798,71 @@ class generation_context { // Add code line. public: auto add(cpp2::impl::in<std::string> s) & -> void; -#line 890 "regex.h2" +#line 892 "regex.h2" // Add check for token. The check needs to be a function call that returns a boolean. public: auto add_check(cpp2::impl::in<std::string> check) & -> void; -#line 896 "regex.h2" +#line 898 "regex.h2" // Add a statefull check. The check needs to return a `match_return`. public: auto add_statefull(cpp2::impl::in<std::string> next_func, cpp2::impl::in<std::string> check) & -> void; -#line 904 "regex.h2" +#line 906 "regex.h2" protected: auto start_func_named(cpp2::impl::in<std::string> name) & -> void; -#line 914 "regex.h2" +#line 916 "regex.h2" protected: [[nodiscard]] auto start_func() & -> std::string; -#line 920 "regex.h2" +#line 922 "regex.h2" protected: auto end_func_statefull(cpp2::impl::in<std::string> s) & -> void; -#line 938 "regex.h2" +#line 940 "regex.h2" // Generate the function for a token. public: [[nodiscard]] auto generate_func(cpp2::impl::in<token_ptr> token) & -> std::string; -#line 947 "regex.h2" +#line 949 "regex.h2" // Generate the reset for a list of group identifiers. public: [[nodiscard]] auto generate_reset(cpp2::impl::in<std::set<int>> groups) & -> std::string; -#line 969 "regex.h2" +#line 971 "regex.h2" // Name generation // protected: [[nodiscard]] auto gen_func_name() & -> std::string; -#line 978 "regex.h2" +#line 980 "regex.h2" public: [[nodiscard]] auto next_func_name() & -> std::string; -#line 982 "regex.h2" +#line 984 "regex.h2" protected: [[nodiscard]] auto gen_reset_func_name() & -> std::string; -#line 988 "regex.h2" +#line 990 "regex.h2" public: [[nodiscard]] auto gen_temp() & -> std::string; -#line 994 "regex.h2" +#line 996 "regex.h2" // Context management // public: [[nodiscard]] auto new_context() & -> generation_function_context*; -#line 1005 "regex.h2" +#line 1007 "regex.h2" public: auto finish_context() & -> void; -#line 1013 "regex.h2" +#line 1015 "regex.h2" // Misc functions // private: [[nodiscard]] auto get_current() & -> generation_function_context*; -#line 1020 "regex.h2" +#line 1022 "regex.h2" private: [[nodiscard]] auto get_base() & -> generation_function_context*; -#line 1024 "regex.h2" +#line 1026 "regex.h2" public: [[nodiscard]] auto get_entry_func() const& -> std::string; -#line 1028 "regex.h2" +#line 1030 "regex.h2" public: [[nodiscard]] auto create_named_group_lookup(cpp2::impl::in<std::map<std::string,int>> named_groups) const& -> std::string; -#line 1051 "regex.h2" +#line 1053 "regex.h2" // Run the generation for the token. public: [[nodiscard]] auto run(cpp2::impl::in<token_ptr> token) & -> std::string; public: generation_context() = default; @@ -868,7 +870,7 @@ class generation_context { public: auto operator=(generation_context const&) -> void = delete; -#line 1057 "regex.h2" +#line 1059 "regex.h2" }; // Regex syntax: | Example: ab|ba @@ -887,23 +889,23 @@ class alternative_token: public regex_token_empty { public: auto operator=(alternative_token const&) -> void = delete; -#line 1075 "regex.h2" +#line 1077 "regex.h2" }; class alternative_token_gen: public regex_token { -#line 1080 "regex.h2" +#line 1082 "regex.h2" private: token_vec alternatives; public: explicit alternative_token_gen(cpp2::impl::in<token_vec> a); -#line 1087 "regex.h2" +#line 1089 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; -#line 1103 "regex.h2" +#line 1105 "regex.h2" public: auto add_groups(std::set<int>& groups) const -> void override; -#line 1109 "regex.h2" +#line 1111 "regex.h2" public: [[nodiscard]] static auto gen_string(cpp2::impl::in<token_vec> a) -> std::string; public: virtual ~alternative_token_gen() noexcept; @@ -911,31 +913,31 @@ class alternative_token_gen: public regex_token { public: auto operator=(alternative_token_gen const&) -> void = delete; -#line 1120 "regex.h2" +#line 1122 "regex.h2" }; template<typename CharT> class alternative_token_matcher { public: [[nodiscard]] static auto match(auto const& cur, auto& ctx, auto const& end_func, auto const& tail, auto const& ...functions) -> auto; -#line 1127 "regex.h2" +#line 1129 "regex.h2" private: template<typename ...Other> [[nodiscard]] static auto match_first(auto const& cur, auto& ctx, auto const& end_func, auto const& tail, auto const& cur_func, auto const& cur_reset, Other const& ...other) -> auto; public: alternative_token_matcher() = default; public: alternative_token_matcher(alternative_token_matcher const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(alternative_token_matcher const&) -> void = delete; -#line 1144 "regex.h2" +#line 1146 "regex.h2" }; // Regex syntax: . // class any_token: public regex_token_check { -#line 1151 "regex.h2" +#line 1153 "regex.h2" public: explicit any_token(cpp2::impl::in<bool> single_line); -#line 1155 "regex.h2" +#line 1157 "regex.h2" public: [[nodiscard]] static auto parse(parse_context& ctx) -> token_ptr; public: virtual ~any_token() noexcept; @@ -943,38 +945,38 @@ class any_token: public regex_token_check { public: auto operator=(any_token const&) -> void = delete; -#line 1160 "regex.h2" +#line 1162 "regex.h2" }; template<typename CharT, bool single_line> [[nodiscard]] auto any_token_matcher(auto& cur, auto& ctx) -> bool; -#line 1173 "regex.h2" +#line 1175 "regex.h2" // Regex syntax: a // class char_token: public regex_token { -#line 1178 "regex.h2" +#line 1180 "regex.h2" private: std::string token; private: bool ignore_case; public: explicit char_token(cpp2::impl::in<char> t, cpp2::impl::in<bool> ignore_case_); -#line 1187 "regex.h2" +#line 1189 "regex.h2" public: [[nodiscard]] static auto parse(parse_context& ctx) -> token_ptr; -#line 1191 "regex.h2" +#line 1193 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; -#line 1213 "regex.h2" +#line 1215 "regex.h2" public: auto gen_case_insensitive(cpp2::impl::in<std::string> lower, cpp2::impl::in<std::string> upper, generation_context& ctx) const& -> void; -#line 1233 "regex.h2" +#line 1235 "regex.h2" public: auto gen_case_sensitive(generation_context& ctx) const& -> void; -#line 1250 "regex.h2" +#line 1252 "regex.h2" public: [[nodiscard]] auto add_escapes(std::string str) const& -> std::string; -#line 1262 "regex.h2" +#line 1264 "regex.h2" public: auto append(char_token const& that) & -> void; public: virtual ~char_token() noexcept; @@ -982,7 +984,7 @@ class char_token: public regex_token { public: auto operator=(char_token const&) -> void = delete; -#line 1266 "regex.h2" +#line 1268 "regex.h2" }; // TODO: Check if vectorization works at some point with this implementation. @@ -1022,21 +1024,21 @@ class char_token: public regex_token { // class class_token: public regex_token { -#line 1306 "regex.h2" +#line 1308 "regex.h2" private: bool negate; private: bool case_insensitive; private: std::string class_str; public: explicit class_token(cpp2::impl::in<bool> negate_, cpp2::impl::in<bool> case_insensitive_, cpp2::impl::in<std::string> class_str_, cpp2::impl::in<std::string> str); -#line 1317 "regex.h2" +#line 1319 "regex.h2" // TODO: Rework class generation: Generate check functions for classes. public: [[nodiscard]] static auto parse(parse_context& ctx) -> token_ptr; -#line 1425 "regex.h2" +#line 1427 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; -#line 1430 "regex.h2" +#line 1432 "regex.h2" private: [[nodiscard]] static auto create_matcher(cpp2::impl::in<std::string> name, cpp2::impl::in<std::string> template_arguments) -> std::string; public: virtual ~class_token() noexcept; @@ -1044,21 +1046,21 @@ class class_token: public regex_token { public: auto operator=(class_token const&) -> void = delete; -#line 1436 "regex.h2" +#line 1438 "regex.h2" }; template<typename CharT, bool negate, bool case_insensitive, typename ...List> class class_token_matcher { public: [[nodiscard]] static auto match(auto& cur, auto& ctx) -> bool; -#line 1461 "regex.h2" +#line 1463 "regex.h2" private: template<typename First, typename ...Other> [[nodiscard]] static auto match_any(cpp2::impl::in<CharT> c) -> bool; public: class_token_matcher() = default; public: class_token_matcher(class_token_matcher const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(class_token_matcher const&) -> void = delete; -#line 1473 "regex.h2" +#line 1475 "regex.h2" // TODO: Implement proper to string // to_string: () -> bstring<CharT> = { // r: bstring<CharT> = "["; @@ -1070,19 +1072,19 @@ template<typename CharT, bool negate, bool case_insensitive, typename ...List> c // return r; // } -#line 1484 "regex.h2" +#line 1486 "regex.h2" }; // Regex syntax: \a or \n or \[ // [[nodiscard]] auto escape_token_parse(parse_context& ctx) -> token_ptr; -#line 1523 "regex.h2" +#line 1525 "regex.h2" // Regex syntax: \K Example: ab\Kcd // [[nodiscard]] auto global_group_reset_token_parse(parse_context& ctx) -> token_ptr; -#line 1532 "regex.h2" +#line 1534 "regex.h2" // Regex syntax: \<number> Example: \1 // \g{name_or_number} // \k{name_or_number} @@ -1091,16 +1093,16 @@ template<typename CharT, bool negate, bool case_insensitive, typename ...List> c // class group_ref_token: public regex_token { -#line 1541 "regex.h2" +#line 1543 "regex.h2" private: int id; private: bool case_insensitive; public: explicit group_ref_token(cpp2::impl::in<int> id_, cpp2::impl::in<bool> case_insensitive_, cpp2::impl::in<std::string> str); -#line 1550 "regex.h2" +#line 1552 "regex.h2" public: [[nodiscard]] static auto parse(parse_context& ctx) -> token_ptr; -#line 1642 "regex.h2" +#line 1644 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; public: virtual ~group_ref_token() noexcept; @@ -1108,12 +1110,12 @@ class group_ref_token: public regex_token { public: auto operator=(group_ref_token const&) -> void = delete; -#line 1645 "regex.h2" +#line 1647 "regex.h2" }; template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto group_ref_token_matcher(auto& cur, auto& ctx) -> bool; -#line 1672 "regex.h2" +#line 1674 "regex.h2" // Regex syntax: (<tokens>) Example: (abc) // (?<modifiers) (?i) // (?<modifiers>:<tokens>) (?i:abc) @@ -1126,22 +1128,22 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr // class group_token: public regex_token { -#line 1685 "regex.h2" +#line 1687 "regex.h2" private: int number {-1}; private: token_ptr inner {nullptr}; public: [[nodiscard]] static auto parse_lookahead(parse_context& ctx, cpp2::impl::in<std::string> syntax, cpp2::impl::in<bool> positive) -> token_ptr; -#line 1701 "regex.h2" +#line 1703 "regex.h2" public: [[nodiscard]] static auto parse(parse_context& ctx) -> token_ptr; -#line 1828 "regex.h2" +#line 1830 "regex.h2" public: [[nodiscard]] static auto gen_string(cpp2::impl::in<std::string> name, cpp2::impl::in<bool> name_brackets, cpp2::impl::in<bool> has_modifier, cpp2::impl::in<std::string> modifiers, cpp2::impl::in<token_ptr> inner_) -> std::string; -#line 1845 "regex.h2" +#line 1847 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; -#line 1864 "regex.h2" +#line 1866 "regex.h2" public: auto add_groups(std::set<int>& groups) const -> void override; public: virtual ~group_token() noexcept; @@ -1150,46 +1152,46 @@ class group_token: public regex_token { public: auto operator=(group_token const&) -> void = delete; -#line 1870 "regex.h2" +#line 1872 "regex.h2" }; // Regex syntax: \x<number> or \x{<number>} Example: \x{62} // [[nodiscard]] auto hexadecimal_token_parse(parse_context& ctx) -> token_ptr; -#line 1913 "regex.h2" +#line 1915 "regex.h2" // Regex syntax: $ Example: aa$ // [[nodiscard]] auto line_end_token_parse(parse_context& ctx) -> token_ptr; -#line 1931 "regex.h2" +#line 1933 "regex.h2" template<typename CharT, bool match_new_line, bool match_new_line_before_end> [[nodiscard]] auto line_end_token_matcher(auto const& cur, auto& ctx) -> bool; -#line 1943 "regex.h2" +#line 1945 "regex.h2" // Regex syntax: ^ Example: ^aa // [[nodiscard]] auto line_start_token_parse(parse_context& ctx) -> token_ptr; -#line 1957 "regex.h2" +#line 1959 "regex.h2" template<typename CharT, bool match_new_line> [[nodiscard]] auto line_start_token_matcher(auto const& cur, auto& ctx) -> bool; -#line 1962 "regex.h2" +#line 1964 "regex.h2" // Regex syntax: (?=) or (?!) or (*pla), etc. Example: (?=AA) // // Parsed in group_token. // class lookahead_token: public regex_token { -#line 1969 "regex.h2" +#line 1971 "regex.h2" protected: bool positive; public: token_ptr inner {nullptr}; public: explicit lookahead_token(cpp2::impl::in<bool> positive_); -#line 1976 "regex.h2" +#line 1978 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; -#line 1982 "regex.h2" +#line 1984 "regex.h2" public: auto add_groups(std::set<int>& groups) const -> void override; public: virtual ~lookahead_token() noexcept; @@ -1197,18 +1199,18 @@ class lookahead_token: public regex_token { public: auto operator=(lookahead_token const&) -> void = delete; -#line 1985 "regex.h2" +#line 1987 "regex.h2" }; template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_matcher(auto const& cur, auto& ctx, auto const& func) -> bool; -#line 1996 "regex.h2" +#line 1998 "regex.h2" // Named character classes // [[nodiscard]] auto named_class_token_parse(parse_context& ctx) -> token_ptr; -#line 2023 "regex.h2" +#line 2025 "regex.h2" template<typename CharT, bool case_insensitive> using named_class_no_new_line = class_token_matcher<CharT,true,case_insensitive,single_class_entry<CharT,'\n'>>; template <typename CharT, bool case_insensitive> using named_class_digits = class_token_matcher<CharT,false,case_insensitive,digits_class<CharT>>; template <typename CharT, bool case_insensitive> using named_class_hor_space = class_token_matcher<CharT,false,case_insensitive,hor_space_class<CharT>>; @@ -1222,12 +1224,12 @@ template <typename CharT, bool case_insensitive> usi template<typename CharT, bool case_insensitive> using named_class_not_ver_space = class_token_matcher<CharT,true,case_insensitive,ver_space_class<CharT>>; template <typename CharT, bool case_insensitive> using named_class_not_word = class_token_matcher<CharT,true,case_insensitive,word_class<CharT>>; -#line 2037 "regex.h2" +#line 2039 "regex.h2" // Regex syntax: \o{<number>} Example: \o{142} // [[nodiscard]] auto octal_token_parse(parse_context& ctx) -> token_ptr; -#line 2063 "regex.h2" +#line 2065 "regex.h2" // TODO: @enum as template parameter yields two error: // error: type 'range_flags' of non-type template parameter is not a structural type // error: non-type template parameter has incomplete type 'range_flags' @@ -1242,13 +1244,13 @@ class range_flags { public: range_flags(range_flags const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(range_flags const&) -> void = delete; }; -#line 2073 "regex.h2" +#line 2075 "regex.h2" // Regex syntax: <matcher>{min, max} Example: a{2,4} // class range_token: public regex_token { -#line 2079 "regex.h2" +#line 2081 "regex.h2" protected: int min_count {-1}; protected: int max_count {-1}; protected: int kind {range_flags::greedy}; @@ -1258,19 +1260,19 @@ class range_token: public regex_token { public: [[nodiscard]] static auto parse(parse_context& ctx) -> token_ptr; -#line 2156 "regex.h2" +#line 2158 "regex.h2" public: auto parse_modifier(parse_context& ctx) & -> void; -#line 2167 "regex.h2" +#line 2169 "regex.h2" public: [[nodiscard]] auto gen_mod_string() const& -> std::string; -#line 2179 "regex.h2" +#line 2181 "regex.h2" public: [[nodiscard]] auto gen_range_string() const& -> std::string; -#line 2197 "regex.h2" +#line 2199 "regex.h2" public: auto generate_code(generation_context& ctx) const -> void override; -#line 2207 "regex.h2" +#line 2209 "regex.h2" public: auto add_groups(std::set<int>& groups) const -> void override; public: virtual ~range_token() noexcept; @@ -1278,46 +1280,46 @@ class range_token: public regex_token { public: auto operator=(range_token const&) -> void = delete; -#line 2211 "regex.h2" +#line 2213 "regex.h2" }; template<typename CharT, int min_count, int max_count, int kind> class range_token_matcher { public: template<typename Iter> [[nodiscard]] static auto match(Iter const& cur, auto& ctx, auto const& inner, auto const& reset_func, auto const& end_func, auto const& tail) -> auto; -#line 2227 "regex.h2" +#line 2229 "regex.h2" private: [[nodiscard]] static auto is_below_upper_bound(cpp2::impl::in<int> count) -> bool; -#line 2232 "regex.h2" +#line 2234 "regex.h2" private: [[nodiscard]] static auto is_below_lower_bound(cpp2::impl::in<int> count) -> bool; -#line 2237 "regex.h2" +#line 2239 "regex.h2" private: [[nodiscard]] static auto is_in_range(cpp2::impl::in<int> count) -> bool; -#line 2243 "regex.h2" +#line 2245 "regex.h2" private: template<typename Iter> [[nodiscard]] static auto match_min_count(Iter const& cur, auto& ctx, auto const& inner, auto const& end_func, int& count_r) -> auto; -#line 2258 "regex.h2" +#line 2260 "regex.h2" private: template<typename Iter> [[nodiscard]] static auto match_greedy(cpp2::impl::in<int> count, Iter const& cur, Iter const& last_valid, auto& ctx, auto const& inner, auto const& reset_func, auto const& end_func, auto const& other) -> match_return<Iter>; -#line 2286 "regex.h2" +#line 2288 "regex.h2" private: template<typename Iter> [[nodiscard]] static auto match_possessive(Iter const& cur, auto& ctx, auto const& inner, auto const& end_func, auto const& other) -> match_return<Iter>; -#line 2310 "regex.h2" +#line 2312 "regex.h2" private: template<typename Iter> [[nodiscard]] static auto match_not_greedy(Iter const& cur, auto& ctx, auto const& inner, auto const& end_func, auto const& other) -> match_return<Iter>; public: range_token_matcher() = default; public: range_token_matcher(range_token_matcher const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(range_token_matcher const&) -> void = delete; -#line 2334 "regex.h2" +#line 2336 "regex.h2" }; // Regex syntax: *, +, or ? Example: aa* // class special_range_token: public range_token { -#line 2341 "regex.h2" +#line 2343 "regex.h2" public: [[nodiscard]] static auto parse(parse_context& ctx) -> token_ptr; public: virtual ~special_range_token() noexcept; @@ -1326,7 +1328,7 @@ class special_range_token: public range_token { public: auto operator=(special_range_token const&) -> void = delete; -#line 2370 "regex.h2" +#line 2372 "regex.h2" }; // Regex syntax: \b or \B Example: \bword\b @@ -1335,10 +1337,10 @@ class special_range_token: public range_token { // [[nodiscard]] auto word_boundary_token_parse(parse_context& ctx) -> token_ptr; -#line 2392 "regex.h2" +#line 2394 "regex.h2" template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_matcher(auto& cur, auto& ctx) -> bool; -#line 2417 "regex.h2" +#line 2419 "regex.h2" //----------------------------------------------------------------------- // // Regular expression implementation. @@ -1350,7 +1352,7 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat template<typename CharT, typename matcher_wrapper> class regular_expression { public: template<typename Iter> using matcher = matcher_wrapper_type<matcher_wrapper,Iter,CharT>;// TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727 - public: template<typename Iter> using context = matcher<Iter>::context; + public: template<typename Iter> using context = matcher_context_type<matcher<Iter>>;// TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727 public: template<typename Iter> class search_return { public: bool matched; @@ -1359,7 +1361,7 @@ template<typename CharT, typename matcher_wrapper> class regular_expression { public: explicit search_return(cpp2::impl::in<bool> matched_, context<Iter> const& ctx_, Iter const& pos_); -#line 2441 "regex.h2" +#line 2443 "regex.h2" public: [[nodiscard]] auto group_number() const& -> auto; public: [[nodiscard]] auto group(cpp2::impl::in<int> g) const& -> auto; public: [[nodiscard]] auto group_start(cpp2::impl::in<int> g) const& -> auto; @@ -1374,7 +1376,7 @@ template<typename CharT, typename matcher_wrapper> class regular_expression { public: auto operator=(search_return const&) -> void = delete; -#line 2457 "regex.h2" +#line 2459 "regex.h2" }; public: [[nodiscard]] auto match(cpp2::impl::in<bview<CharT>> str) const& -> auto; @@ -1382,13 +1384,13 @@ template<typename CharT, typename matcher_wrapper> class regular_expression { public: [[nodiscard]] auto match(cpp2::impl::in<bview<CharT>> str, auto const& start, auto const& length) const& -> auto; public: template<typename Iter> [[nodiscard]] auto match(Iter const& start, Iter const& end) const& -> search_return<Iter>; -#line 2469 "regex.h2" +#line 2471 "regex.h2" public: [[nodiscard]] auto search(cpp2::impl::in<bview<CharT>> str) const& -> auto; public: [[nodiscard]] auto search(cpp2::impl::in<bview<CharT>> str, auto const& start) const& -> auto; public: [[nodiscard]] auto search(cpp2::impl::in<bview<CharT>> str, auto const& start, auto const& length) const& -> auto; public: template<typename Iter> [[nodiscard]] auto search(Iter const& start, Iter const& end) const& -> search_return<Iter>; -#line 2491 "regex.h2" +#line 2493 "regex.h2" public: [[nodiscard]] auto to_string() const& -> auto; // Helper functions @@ -1400,7 +1402,7 @@ template<typename CharT, typename matcher_wrapper> class regular_expression { public: auto operator=(regular_expression const&) -> void = delete; -#line 2504 "regex.h2" +#line 2506 "regex.h2" }; //----------------------------------------------------------------------- @@ -1423,21 +1425,21 @@ template<typename Error_out> class regex_generator { public: explicit regex_generator(cpp2::impl::in<std::string_view> r, Error_out const& e); -#line 2529 "regex.h2" +#line 2531 "regex.h2" public: [[nodiscard]] auto parse() & -> std::string; -#line 2564 "regex.h2" +#line 2566 "regex.h2" private: auto extract_modifiers() & -> void; public: regex_generator(regex_generator const&) = delete; /* No 'that' constructor, suppress copy */ public: auto operator=(regex_generator const&) -> void = delete; -#line 2577 "regex.h2" +#line 2579 "regex.h2" }; template<typename Err> [[nodiscard]] auto generate_regex(cpp2::impl::in<std::string_view> regex, Err const& err) -> std::string; -#line 2586 "regex.h2" +#line 2588 "regex.h2" } } @@ -1446,7 +1448,7 @@ template<typename Err> [[nodiscard]] auto generate_regex(cpp2::impl::in<std::str #line 1 "regex.h2" -#line 21 "regex.h2" +#line 23 "regex.h2" namespace cpp2 { namespace regex { @@ -1508,7 +1510,7 @@ if (((*this) & perl_code_syntax) == perl_code_syntax) {_ret += _comma + "perl_co if (((*this) & perl_code_syntax_in_classes) == perl_code_syntax_in_classes) {_ret += _comma + "perl_code_syntax_in_classes";_comma = ", ";} return cpp2::move(_ret) + ")"; } -#line 28 "regex.h2" +#line 30 "regex.h2" //----------------------------------------------------------------------- // // Helper structures for the expression matching. @@ -1526,43 +1528,43 @@ return cpp2::move(_ret) + ")"; // mod: x // mod: xx -#line 46 "regex.h2" +#line 48 "regex.h2" // Structure for storing group information. // -#line 55 "regex.h2" +#line 57 "regex.h2" // Return value for every matcher. // -#line 62 "regex.h2" +#line 64 "regex.h2" // Modifiable state during matching. // -#line 71 "regex.h2" +#line 73 "regex.h2" template <typename CharT, typename Iter, int max_groups> match_context<CharT,Iter,max_groups>::match_context(Iter const& begin_, Iter const& end_) : begin{ begin_ } , end{ end_ }{ -#line 74 "regex.h2" +#line 76 "regex.h2" } -#line 76 "regex.h2" +#line 78 "regex.h2" template <typename CharT, typename Iter, int max_groups> match_context<CharT,Iter,max_groups>::match_context(match_context const& that) : begin{ that.begin } , end{ that.end } , groups{ that.groups }{} -#line 76 "regex.h2" +#line 78 "regex.h2" template <typename CharT, typename Iter, int max_groups> auto match_context<CharT,Iter,max_groups>::operator=(match_context const& that) -> match_context& { begin = that.begin; end = that.end; groups = that.groups; return *this; } -#line 76 "regex.h2" +#line 78 "regex.h2" template <typename CharT, typename Iter, int max_groups> match_context<CharT,Iter,max_groups>::match_context(match_context&& that) noexcept : begin{ std::move(that).begin } , end{ std::move(that).end } , groups{ std::move(that).groups }{} -#line 76 "regex.h2" +#line 78 "regex.h2" template <typename CharT, typename Iter, int max_groups> auto match_context<CharT,Iter,max_groups>::operator=(match_context&& that) noexcept -> match_context& { begin = std::move(that).begin; end = std::move(that).end; @@ -1571,24 +1573,24 @@ return cpp2::move(_ret) + ")"; // Getter and setter for groups // -#line 80 "regex.h2" +#line 82 "regex.h2" template <typename CharT, typename Iter, int max_groups> [[nodiscard]] auto match_context<CharT,Iter,max_groups>::get_group(auto const& group) const& -> auto { return CPP2_ASSERT_IN_BOUNDS(groups, group); } -#line 82 "regex.h2" +#line 84 "regex.h2" template <typename CharT, typename Iter, int max_groups> [[nodiscard]] auto match_context<CharT,Iter,max_groups>::get_group_end(auto const& group) const& -> int{ if (cpp2::impl::cmp_greater_eq(group,max_groups) || !(CPP2_ASSERT_IN_BOUNDS(groups, group).matched)) { return 0; } return std::distance(begin, CPP2_ASSERT_IN_BOUNDS(groups, group).end); } -#line 88 "regex.h2" +#line 90 "regex.h2" template <typename CharT, typename Iter, int max_groups> [[nodiscard]] auto match_context<CharT,Iter,max_groups>::get_group_start(auto const& group) const& -> int{ if (cpp2::impl::cmp_greater_eq(group,max_groups) || !(CPP2_ASSERT_IN_BOUNDS(groups, group).matched)) { return 0; } return std::distance(begin, CPP2_ASSERT_IN_BOUNDS(groups, group).start); } -#line 94 "regex.h2" +#line 96 "regex.h2" template <typename CharT, typename Iter, int max_groups> [[nodiscard]] auto match_context<CharT,Iter,max_groups>::get_group_string(auto const& group) const& -> std::string{ if (cpp2::impl::cmp_greater_eq(group,max_groups) || !(CPP2_ASSERT_IN_BOUNDS(groups, group).matched)) { return ""; @@ -1596,72 +1598,72 @@ return cpp2::move(_ret) + ")"; return std::string(CPP2_ASSERT_IN_BOUNDS(groups, group).start, CPP2_ASSERT_IN_BOUNDS(groups, group).end); } -#line 101 "regex.h2" +#line 103 "regex.h2" template <typename CharT, typename Iter, int max_groups> auto match_context<CharT,Iter,max_groups>::set_group_end(auto const& group, auto const& pos) & -> void{ CPP2_ASSERT_IN_BOUNDS(groups, group).end = pos; CPP2_ASSERT_IN_BOUNDS(groups, group).matched = true; } -#line 106 "regex.h2" +#line 108 "regex.h2" template <typename CharT, typename Iter, int max_groups> auto match_context<CharT,Iter,max_groups>::set_group_invalid(auto const& group) & -> void{ CPP2_ASSERT_IN_BOUNDS(groups, group).matched = false; } -#line 110 "regex.h2" +#line 112 "regex.h2" template <typename CharT, typename Iter, int max_groups> auto match_context<CharT,Iter,max_groups>::set_group_start(auto const& group, auto const& pos) & -> void{ CPP2_ASSERT_IN_BOUNDS(groups, group).start = pos; } -#line 114 "regex.h2" +#line 116 "regex.h2" template <typename CharT, typename Iter, int max_groups> [[nodiscard]] auto match_context<CharT,Iter,max_groups>::size() const& -> auto { return max_groups; } // Misc functions // -#line 119 "regex.h2" +#line 121 "regex.h2" template <typename CharT, typename Iter, int max_groups> [[nodiscard]] auto match_context<CharT,Iter,max_groups>::fail() const& -> auto { return match_return(false, end); } -#line 120 "regex.h2" +#line 122 "regex.h2" template <typename CharT, typename Iter, int max_groups> [[nodiscard]] auto match_context<CharT,Iter,max_groups>::pass(cpp2::impl::in<Iter> cur) const& -> auto { return match_return(true, cur); } -#line 124 "regex.h2" +#line 126 "regex.h2" // End function that returns a valid match. // -#line 127 "regex.h2" +#line 129 "regex.h2" [[nodiscard]] auto true_end_func::operator()(auto const& cur, auto& ctx) const& -> auto { return ctx.pass(cur); } -#line 130 "regex.h2" +#line 132 "regex.h2" // Empty group reset function. // -#line 133 "regex.h2" +#line 135 "regex.h2" auto no_reset::operator()([[maybe_unused]] auto& unnamed_param_2) const& -> void{} -#line 136 "regex.h2" +#line 138 "regex.h2" // Evaluate func on destruction of the handle. -#line 141 "regex.h2" +#line 143 "regex.h2" template <typename Func> on_return<Func>::on_return(Func const& f) : func{ f }{ -#line 143 "regex.h2" +#line 145 "regex.h2" } -#line 141 "regex.h2" +#line 143 "regex.h2" template <typename Func> auto on_return<Func>::operator=(Func const& f) -> on_return& { func = f; return *this; -#line 143 "regex.h2" +#line 145 "regex.h2" } -#line 145 "regex.h2" +#line 147 "regex.h2" template <typename Func> on_return<Func>::~on_return() noexcept{ cpp2::move(*this).func(); } -#line 150 "regex.h2" +#line 152 "regex.h2" // Helper for auto deduction of the Func type. -#line 151 "regex.h2" +#line 153 "regex.h2" template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> auto { return on_return<Func>(func); } //----------------------------------------------------------------------- @@ -1674,72 +1676,72 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a // Class syntax: <any character> Example: a // -#line 164 "regex.h2" +#line 166 "regex.h2" template <typename CharT, CharT C> [[nodiscard]] auto single_class_entry<CharT,C>::includes(cpp2::impl::in<CharT> c) -> auto { return c == C; } -#line 165 "regex.h2" +#line 167 "regex.h2" template <typename CharT, CharT C> [[nodiscard]] auto single_class_entry<CharT,C>::to_string() -> auto { return bstring<CharT>(1, C); } -#line 168 "regex.h2" +#line 170 "regex.h2" // Class syntax: - Example: a-c // -#line 172 "regex.h2" +#line 174 "regex.h2" template <typename CharT, CharT Start, CharT End> [[nodiscard]] auto range_class_entry<CharT,Start,End>::includes(cpp2::impl::in<CharT> c) -> auto { return [_0 = Start, _1 = c, _2 = End]{ return cpp2::impl::cmp_less_eq(_0,_1) && cpp2::impl::cmp_less_eq(_1,_2); }(); } -#line 173 "regex.h2" +#line 175 "regex.h2" template <typename CharT, CharT Start, CharT End> [[nodiscard]] auto range_class_entry<CharT,Start,End>::to_string() -> auto { return cpp2::to_string(Start) + "-" + cpp2::to_string(End); } -#line 176 "regex.h2" +#line 178 "regex.h2" // Helper for combining two character classes // -#line 179 "regex.h2" +#line 181 "regex.h2" template <typename CharT, typename ...List> [[nodiscard]] auto combined_class_entry<CharT,List...>::includes(cpp2::impl::in<CharT> c) -> auto { return (false || ... || List::includes(c)); } -#line 180 "regex.h2" +#line 182 "regex.h2" template <typename CharT, typename ...List> [[nodiscard]] auto combined_class_entry<CharT,List...>::to_string() -> auto { return (bstring<CharT>() + ... + List::to_string()); } -#line 183 "regex.h2" +#line 185 "regex.h2" // Class syntax: <list of characters> Example: abcd // -#line 186 "regex.h2" +#line 188 "regex.h2" template <typename CharT, CharT ...List> [[nodiscard]] auto list_class_entry<CharT,List...>::includes(cpp2::impl::in<CharT> c) -> auto { return (false || ... || (List == c)); } -#line 187 "regex.h2" +#line 189 "regex.h2" template <typename CharT, CharT ...List> [[nodiscard]] auto list_class_entry<CharT,List...>::to_string() -> auto { return (bstring<CharT>() + ... + List); } -#line 190 "regex.h2" +#line 192 "regex.h2" // Class syntax: [:<class name:] Example: [:alnum:] // -#line 193 "regex.h2" +#line 195 "regex.h2" template <typename CharT, string_util::fixed_string Name, typename Inner> [[nodiscard]] auto named_class_entry<CharT,Name,Inner>::includes(cpp2::impl::in<CharT> c) -> auto { return Inner::includes(c); } -#line 194 "regex.h2" +#line 196 "regex.h2" template <typename CharT, string_util::fixed_string Name, typename Inner> [[nodiscard]] auto named_class_entry<CharT,Name,Inner>::to_string() -> auto { return "[:" + cpp2::to_string(Name.data()) + ":]"; } -#line 199 "regex.h2" +#line 201 "regex.h2" template <typename CharT, typename Inner> [[nodiscard]] auto negated_class_entry<CharT,Inner>::includes(cpp2::impl::in<CharT> c) -> auto { return !(Inner::includes(c)); } -#line 202 "regex.h2" +#line 204 "regex.h2" // Short class syntax: \<character> Example: \w // -#line 205 "regex.h2" +#line 207 "regex.h2" template <typename CharT, string_util::fixed_string Name, typename Inner> [[nodiscard]] auto shorthand_class_entry<CharT,Name,Inner>::includes(cpp2::impl::in<CharT> c) -> auto { return Inner::includes(c); } -#line 206 "regex.h2" +#line 208 "regex.h2" template <typename CharT, string_util::fixed_string Name, typename Inner> [[nodiscard]] auto shorthand_class_entry<CharT,Name,Inner>::to_string() -> auto { return Name.str(); } -#line 210 "regex.h2" +#line 212 "regex.h2" // Named basic character classes // -#line 216 "regex.h2" +#line 218 "regex.h2" // Named other classes // -#line 232 "regex.h2" +#line 234 "regex.h2" // Shorthand class entries // -#line 247 "regex.h2" +#line 249 "regex.h2" //----------------------------------------------------------------------- // // Tokens for regular expressions. @@ -1750,99 +1752,99 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a // Basic class for a regex token. // -#line 260 "regex.h2" +#line 262 "regex.h2" regex_token::regex_token(cpp2::impl::in<std::string> str) : string_rep{ str }{ -#line 262 "regex.h2" +#line 264 "regex.h2" } -#line 264 "regex.h2" +#line 266 "regex.h2" regex_token::regex_token() : string_rep{ "" }{ -#line 266 "regex.h2" +#line 268 "regex.h2" } //parse: (inout ctx: parse_context) -> token_ptr; // Generate the matching code. -#line 271 "regex.h2" +#line 273 "regex.h2" auto regex_token::add_groups([[maybe_unused]] std::set<int>& unnamed_param_2) const -> void{}// Adds all group indices to the set. -#line 272 "regex.h2" +#line 274 "regex.h2" [[nodiscard]] auto regex_token::to_string() const& -> std::string{return string_rep; }// Create a string representation. -#line 273 "regex.h2" +#line 275 "regex.h2" auto regex_token::set_string(cpp2::impl::in<std::string> s) & -> void{string_rep = s; } regex_token::~regex_token() noexcept{}// Set the string representation. -#line 286 "regex.h2" +#line 288 "regex.h2" regex_token_check::regex_token_check(cpp2::impl::in<std::string> str, cpp2::impl::in<std::string> check_) : regex_token{ str } , check{ check_ }{ -#line 289 "regex.h2" +#line 291 "regex.h2" } -#line 291 "regex.h2" +#line 293 "regex.h2" auto regex_token_check::generate_code(generation_context& ctx) const -> void{ ctx.add_check(check + "(" + ctx.match_parameters() + ")"); } regex_token_check::~regex_token_check() noexcept{} -#line 302 "regex.h2" +#line 304 "regex.h2" regex_token_code::regex_token_code(cpp2::impl::in<std::string> str, cpp2::impl::in<std::string> code_) : regex_token{ str } , code{ code_ }{ -#line 305 "regex.h2" +#line 307 "regex.h2" } -#line 307 "regex.h2" +#line 309 "regex.h2" auto regex_token_code::generate_code(generation_context& ctx) const -> void{ ctx.add(code); } regex_token_code::~regex_token_code() noexcept{} -#line 316 "regex.h2" +#line 318 "regex.h2" regex_token_empty::regex_token_empty(cpp2::impl::in<std::string> str) : regex_token{ str }{ -#line 318 "regex.h2" +#line 320 "regex.h2" } -#line 320 "regex.h2" +#line 322 "regex.h2" auto regex_token_empty::generate_code([[maybe_unused]] generation_context& unnamed_param_2) const -> void{ // Nothing. } regex_token_empty::~regex_token_empty() noexcept{} -#line 332 "regex.h2" +#line 334 "regex.h2" regex_token_list::regex_token_list(cpp2::impl::in<token_vec> t) : regex_token{ gen_string(t) } , tokens{ t }{ -#line 335 "regex.h2" +#line 337 "regex.h2" } -#line 337 "regex.h2" +#line 339 "regex.h2" auto regex_token_list::generate_code(generation_context& ctx) const -> void{ for ( auto const& token : tokens ) { (*cpp2::impl::assert_not_null(token)).generate_code(ctx); } } -#line 343 "regex.h2" +#line 345 "regex.h2" auto regex_token_list::add_groups(std::set<int>& groups) const -> void{ for ( auto const& token : tokens ) { (*cpp2::impl::assert_not_null(token)).add_groups(groups); } } -#line 349 "regex.h2" +#line 351 "regex.h2" [[nodiscard]] auto regex_token_list::gen_string(cpp2::impl::in<token_vec> vec) -> std::string{ std::string r {""}; for ( auto const& token : vec ) { @@ -1853,7 +1855,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a regex_token_list::~regex_token_list() noexcept{} -#line 375 "regex.h2" +#line 377 "regex.h2" auto parse_context_group_state::next_alternative() & -> void{ token_vec new_list {}; std::swap(new_list, cur_match_list); @@ -1861,14 +1863,14 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a static_cast<void>(alternate_match_lists.insert(alternate_match_lists.end(), CPP2_UFCS_TEMPLATE(cpp2_new<regex_token_list>)(cpp2::shared, cpp2::move(new_list)))); } -#line 383 "regex.h2" +#line 385 "regex.h2" auto parse_context_group_state::swap(parse_context_group_state& t) & -> void{ std::swap(cur_match_list, t.cur_match_list); std::swap(alternate_match_lists, t.alternate_match_lists); std::swap(modifiers, t.modifiers); } -#line 390 "regex.h2" +#line 392 "regex.h2" [[nodiscard]] auto parse_context_group_state::get_as_token() & -> token_ptr{ if (alternate_match_lists.empty()) { post_process_list(cur_match_list); @@ -1880,15 +1882,15 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 402 "regex.h2" +#line 404 "regex.h2" auto parse_context_group_state::add(cpp2::impl::in<token_ptr> token) & -> void{ cur_match_list.push_back(token); } -#line 407 "regex.h2" +#line 409 "regex.h2" [[nodiscard]] auto parse_context_group_state::empty() const& -> bool { return cur_match_list.empty(); } -#line 411 "regex.h2" +#line 413 "regex.h2" auto parse_context_group_state::post_process_list(token_vec& list) -> void{ // Merge all characters auto merge_pos {CPP2_UFCS(begin)(list)}; @@ -1903,7 +1905,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 435 "regex.h2" +#line 437 "regex.h2" [[nodiscard]] auto parse_context_branch_reset_state::next() & -> int{ auto g {cur_group}; cur_group += 1; @@ -1912,20 +1914,20 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return g; } -#line 444 "regex.h2" +#line 446 "regex.h2" auto parse_context_branch_reset_state::set_next(cpp2::impl::in<int> g) & -> void{ cur_group = g; max_group = max(max_group, g); } -#line 450 "regex.h2" +#line 452 "regex.h2" auto parse_context_branch_reset_state::next_alternative() & -> void{ if (is_active) { cur_group = from; } } -#line 457 "regex.h2" +#line 459 "regex.h2" auto parse_context_branch_reset_state::set_active_reset(cpp2::impl::in<int> restart) & -> void{ is_active = true; cur_group = restart; @@ -1933,16 +1935,16 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a max_group = restart; } -#line 483 "regex.h2" +#line 485 "regex.h2" parse_context::parse_context(cpp2::impl::in<std::string_view> r, auto const& e) : regex{ r } , root{ CPP2_UFCS_TEMPLATE_NONLOCAL(cpp2_new<regex_token_empty>)(cpp2::shared, "") } , error_out{ e }{ -#line 487 "regex.h2" +#line 489 "regex.h2" } -#line 493 "regex.h2" +#line 495 "regex.h2" [[nodiscard]] auto parse_context::start_group() & -> parse_context_group_state{ parse_context_group_state old_state {}; old_state.swap(cur_group_state); @@ -1951,24 +1953,24 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return old_state; } -#line 502 "regex.h2" +#line 504 "regex.h2" [[nodiscard]] auto parse_context::end_group(cpp2::impl::in<parse_context_group_state> old_state) & -> token_ptr{ auto inner {cur_group_state.get_as_token()}; cur_group_state = old_state; return inner; } -#line 508 "regex.h2" +#line 510 "regex.h2" [[nodiscard]] auto parse_context::get_modifiers() const& -> expression_flags{ return cur_group_state.modifiers; } -#line 512 "regex.h2" +#line 514 "regex.h2" auto parse_context::set_modifiers(cpp2::impl::in<expression_flags> mod) & -> void{ cur_group_state.modifiers = mod; } -#line 519 "regex.h2" +#line 521 "regex.h2" [[nodiscard]] auto parse_context::branch_reset_new_state() & -> parse_context_branch_reset_state{ parse_context_branch_reset_state old_state {}; std::swap(old_state, cur_branch_reset_state); @@ -1977,30 +1979,30 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return old_state; } -#line 527 "regex.h2" +#line 529 "regex.h2" auto parse_context::branch_reset_restore_state(cpp2::impl::in<parse_context_branch_reset_state> old_state) & -> void{ auto max_group {cur_branch_reset_state.max_group}; cur_branch_reset_state = old_state; cur_branch_reset_state.set_next(cpp2::move(max_group)); } -#line 533 "regex.h2" +#line 535 "regex.h2" auto parse_context::next_alternative() & -> void{ cur_group_state.next_alternative(); cur_branch_reset_state.next_alternative(); } -#line 541 "regex.h2" +#line 543 "regex.h2" auto parse_context::add_token(cpp2::impl::in<token_ptr> token) & -> void{ cur_group_state.add(token); } -#line 545 "regex.h2" +#line 547 "regex.h2" [[nodiscard]] auto parse_context::has_token() const& -> bool{ return !(cur_group_state.empty()); } -#line 549 "regex.h2" +#line 551 "regex.h2" [[nodiscard]] auto parse_context::pop_token() & -> token_ptr{ token_ptr r {nullptr}; if (has_token()) { @@ -2011,29 +2013,29 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return r; } -#line 559 "regex.h2" +#line 561 "regex.h2" [[nodiscard]] auto parse_context::get_as_token() & -> token_ptr{ return root; } -#line 566 "regex.h2" +#line 568 "regex.h2" [[nodiscard]] auto parse_context::get_cur_group() const& -> int{ return cur_branch_reset_state.cur_group; } -#line 570 "regex.h2" +#line 572 "regex.h2" [[nodiscard]] auto parse_context::next_group() & -> int{ return cur_branch_reset_state.next(); } -#line 574 "regex.h2" +#line 576 "regex.h2" auto parse_context::set_named_group(cpp2::impl::in<std::string> name, cpp2::impl::in<int> id) & -> void{ if (!(named_groups.contains(name))) {// Redefinition of group name is not an error. The left most one is retained. CPP2_ASSERT_IN_BOUNDS(named_groups, name) = id; } } -#line 580 "regex.h2" +#line 582 "regex.h2" [[nodiscard]] auto parse_context::get_named_group(cpp2::impl::in<std::string> name) const& -> int{ auto iter {named_groups.find(name)}; if (iter == named_groups.end()) { @@ -2044,10 +2046,10 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 593 "regex.h2" +#line 595 "regex.h2" [[nodiscard]] auto parse_context::current() const& -> char{return CPP2_ASSERT_IN_BOUNDS(regex, pos); } -#line 596 "regex.h2" +#line 598 "regex.h2" [[nodiscard]] auto parse_context::get_next_position(cpp2::impl::in<bool> in_class, cpp2::impl::in<bool> no_skip) const& -> size_t{ auto perl_syntax {false}; if (!(no_skip)) { @@ -2086,7 +2088,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return cur; } -#line 635 "regex.h2" +#line 637 "regex.h2" [[nodiscard]] auto parse_context::next_impl(cpp2::impl::in<bool> in_class, cpp2::impl::in<bool> no_skip) & -> bool{ pos = get_next_position(in_class, no_skip); if (pos != regex.size()) { @@ -2097,14 +2099,14 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 645 "regex.h2" +#line 647 "regex.h2" [[nodiscard]] auto parse_context::next() & -> auto { return next_impl(false, false); } -#line 646 "regex.h2" +#line 648 "regex.h2" [[nodiscard]] auto parse_context::next_in_class() & -> auto { return next_impl(true, false); } -#line 647 "regex.h2" +#line 649 "regex.h2" [[nodiscard]] auto parse_context::next_no_skip() & -> auto { return next_impl(false, true); } -#line 649 "regex.h2" +#line 651 "regex.h2" [[nodiscard]] auto parse_context::next_n(cpp2::impl::in<int> n) & -> bool{ auto r {true}; auto cur {0}; @@ -2114,10 +2116,10 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return r; } -#line 658 "regex.h2" +#line 660 "regex.h2" [[nodiscard]] auto parse_context::has_next() const& -> bool{return cpp2::impl::cmp_less(pos,regex.size()); } -#line 660 "regex.h2" +#line 662 "regex.h2" [[nodiscard]] auto parse_context::grab_until_impl(cpp2::impl::in<std::string> e, cpp2::impl::out<std::string> r, cpp2::impl::in<bool> any) & -> bool{ auto end {pos}; if (any) { @@ -2138,14 +2140,14 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 680 "regex.h2" +#line 682 "regex.h2" [[nodiscard]] auto parse_context::grab_until(cpp2::impl::in<std::string> e, cpp2::impl::out<std::string> r) & -> auto { return grab_until_impl(e, cpp2::impl::out(&r), false); } -#line 681 "regex.h2" +#line 683 "regex.h2" [[nodiscard]] auto parse_context::grab_until(cpp2::impl::in<char> e, cpp2::impl::out<std::string> r) & -> auto { return grab_until_impl(std::string(1, e), cpp2::impl::out(&r), false); } -#line 682 "regex.h2" +#line 684 "regex.h2" [[nodiscard]] auto parse_context::grab_until_one_of(cpp2::impl::in<std::string> e, cpp2::impl::out<std::string> r) & -> auto { return grab_until_impl(e, cpp2::impl::out(&r), true); } -#line 684 "regex.h2" +#line 686 "regex.h2" [[nodiscard]] auto parse_context::grab_n(cpp2::impl::in<int> n, cpp2::impl::out<std::string> r) & -> bool{ if (cpp2::impl::cmp_less_eq(pos + n,regex.size())) { r.construct(regex.substr(pos, n)); @@ -2158,7 +2160,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 696 "regex.h2" +#line 698 "regex.h2" [[nodiscard]] auto parse_context::grab_number() & -> std::string{ auto start {pos}; auto start_search {pos}; @@ -2179,7 +2181,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return cpp2::move(r.value()); } -#line 716 "regex.h2" +#line 718 "regex.h2" [[nodiscard]] auto parse_context::peek_impl(cpp2::impl::in<bool> in_class) const& -> char{ auto next_pos {get_next_position(in_class, false)}; if (cpp2::impl::cmp_less(next_pos,regex.size())) { @@ -2190,12 +2192,12 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 726 "regex.h2" +#line 728 "regex.h2" [[nodiscard]] auto parse_context::peek() const& -> auto { return peek_impl(false); } -#line 727 "regex.h2" +#line 729 "regex.h2" [[nodiscard]] auto parse_context::peek_in_class() const& -> auto { return peek_impl(true); } -#line 732 "regex.h2" +#line 734 "regex.h2" [[nodiscard]] auto parse_context::parser_group_modifiers(cpp2::impl::in<std::string> change_str, expression_flags& parser_modifiers) & -> bool{ auto is_negative {false}; auto is_reset {false}; @@ -2248,7 +2250,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return true; } -#line 784 "regex.h2" +#line 786 "regex.h2" [[nodiscard]] auto parse_context::parse_until(cpp2::impl::in<char> term) & -> bool{ token_ptr cur_token {}; @@ -2286,7 +2288,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return true; } -#line 821 "regex.h2" +#line 823 "regex.h2" [[nodiscard]] auto parse_context::parse(cpp2::impl::in<std::string> modifiers) & -> bool{ expression_flags flags {}; @@ -2301,21 +2303,21 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return r; } -#line 837 "regex.h2" - [[nodiscard]] auto parse_context::get_pos() const& -> auto { return pos; } -#line 838 "regex.h2" - [[nodiscard]] auto parse_context::get_range(cpp2::impl::in<int> start, cpp2::impl::in<int> end) const& -> auto { return std::string(regex.substr(start, end - start + 1)); } #line 839 "regex.h2" + [[nodiscard]] auto parse_context::get_pos() const& -> auto { return pos; } +#line 840 "regex.h2" + [[nodiscard]] auto parse_context::get_range(cpp2::impl::in<size_t> start, cpp2::impl::in<size_t> end) const& -> auto { return std::string(regex.substr(start, end - start + 1)); } +#line 841 "regex.h2" [[nodiscard]] auto parse_context::valid() const& -> bool{return has_next() && !(has_error); } -#line 841 "regex.h2" +#line 843 "regex.h2" [[nodiscard]] auto parse_context::error(cpp2::impl::in<std::string> err) & -> token_ptr{ has_error = true; error_out(("Error during parsing of regex '" + cpp2::to_string(regex) + "' at position '" + cpp2::to_string(pos) + "': " + cpp2::to_string(err))); return nullptr; } -#line 855 "regex.h2" +#line 857 "regex.h2" auto generation_function_context::add_tabs(cpp2::impl::in<int> c) & -> void{ int i {0}; for( ; cpp2::impl::cmp_less(i,c); i += 1 ) { @@ -2323,27 +2325,27 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 862 "regex.h2" +#line 864 "regex.h2" auto generation_function_context::remove_tabs(cpp2::impl::in<int> c) & -> void{ tabs = tabs.substr(0, c * 2); } -#line 880 "regex.h2" +#line 882 "regex.h2" [[nodiscard]] auto generation_context::match_parameters() const& -> std::string{return "r.pos, ctx"; } -#line 885 "regex.h2" +#line 887 "regex.h2" auto generation_context::add(cpp2::impl::in<std::string> s) & -> void{ auto cur {get_current()}; (*cpp2::impl::assert_not_null(cur)).code += (cpp2::to_string((*cpp2::impl::assert_not_null(cur)).tabs) + cpp2::to_string(s) + "\n"); } -#line 891 "regex.h2" +#line 893 "regex.h2" auto generation_context::add_check(cpp2::impl::in<std::string> check) & -> void{ auto cur {get_current()}; (*cpp2::impl::assert_not_null(cur)).code += (cpp2::to_string((*cpp2::impl::assert_not_null(cur)).tabs) + "if !cpp2::regex::" + cpp2::to_string(check) + " { r.matched = false; break; }\n"); } -#line 897 "regex.h2" +#line 899 "regex.h2" auto generation_context::add_statefull(cpp2::impl::in<std::string> next_func, cpp2::impl::in<std::string> check) & -> void{ end_func_statefull(check); @@ -2351,7 +2353,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a start_func_named(cpp2::move(name)); } -#line 904 "regex.h2" +#line 906 "regex.h2" auto generation_context::start_func_named(cpp2::impl::in<std::string> name) & -> void{ auto cur {new_context()}; @@ -2362,14 +2364,14 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a (*cpp2::impl::assert_not_null(cpp2::move(cur))).add_tabs(3); } -#line 914 "regex.h2" +#line 916 "regex.h2" [[nodiscard]] auto generation_context::start_func() & -> std::string{ auto name {gen_func_name()}; start_func_named(name); return cpp2::move(name) + "()"; } -#line 920 "regex.h2" +#line 922 "regex.h2" auto generation_context::end_func_statefull(cpp2::impl::in<std::string> s) & -> void{ auto cur {get_current()}; (*cpp2::impl::assert_not_null(cur)).remove_tabs(3); @@ -2388,7 +2390,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a finish_context(); } -#line 939 "regex.h2" +#line 941 "regex.h2" [[nodiscard]] auto generation_context::generate_func(cpp2::impl::in<token_ptr> token) & -> std::string{ auto name {start_func()}; (*cpp2::impl::assert_not_null(token)).generate_code((*this)); @@ -2397,7 +2399,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return name; } -#line 948 "regex.h2" +#line 950 "regex.h2" [[nodiscard]] auto generation_context::generate_reset(cpp2::impl::in<std::set<int>> groups) & -> std::string{ if (groups.empty()) { return "cpp2::regex::no_reset()"; @@ -2419,33 +2421,33 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return cpp2::move(name) + "()"; } -#line 972 "regex.h2" +#line 974 "regex.h2" [[nodiscard]] auto generation_context::gen_func_name() & -> std::string{ auto cur_id {matcher_func}; matcher_func += 1; return { "func_" + cpp2::to_string(cpp2::move(cur_id)) }; } -#line 978 "regex.h2" +#line 980 "regex.h2" [[nodiscard]] auto generation_context::next_func_name() & -> std::string{ return gen_func_name() + "()"; } -#line 982 "regex.h2" +#line 984 "regex.h2" [[nodiscard]] auto generation_context::gen_reset_func_name() & -> std::string{ auto cur_id {reset_func}; reset_func += 1; return { "reset_" + cpp2::to_string(cpp2::move(cur_id)) }; } -#line 988 "regex.h2" +#line 990 "regex.h2" [[nodiscard]] auto generation_context::gen_temp() & -> std::string{ auto cur_id {temp_name}; temp_name += 1; return { "tmp_" + cpp2::to_string(cpp2::move(cur_id)) }; } -#line 997 "regex.h2" +#line 999 "regex.h2" [[nodiscard]] auto generation_context::new_context() & -> generation_function_context*{ gen_stack.push_back(generation_function_context()); auto cur {get_current()}; @@ -2454,7 +2456,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return cur; } -#line 1005 "regex.h2" +#line 1007 "regex.h2" auto generation_context::finish_context() & -> void{ auto cur {get_current()}; auto base {get_base()}; @@ -2463,22 +2465,22 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a gen_stack.pop_back(); } -#line 1016 "regex.h2" +#line 1018 "regex.h2" [[nodiscard]] auto generation_context::get_current() & -> generation_function_context*{ return &gen_stack.back(); } -#line 1020 "regex.h2" +#line 1022 "regex.h2" [[nodiscard]] auto generation_context::get_base() & -> generation_function_context*{ return &CPP2_ASSERT_IN_BOUNDS_LITERAL(gen_stack, 0); } -#line 1024 "regex.h2" +#line 1026 "regex.h2" [[nodiscard]] auto generation_context::get_entry_func() const& -> std::string{ return entry_func; } -#line 1028 "regex.h2" +#line 1030 "regex.h2" [[nodiscard]] auto generation_context::create_named_group_lookup(cpp2::impl::in<std::map<std::string,int>> named_groups) const& -> std::string{ std::string res {"get_named_group_index: (name) -> int = {\n"}; @@ -2501,18 +2503,18 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a return res; } -#line 1052 "regex.h2" +#line 1054 "regex.h2" [[nodiscard]] auto generation_context::run(cpp2::impl::in<token_ptr> token) & -> std::string{ entry_func = generate_func(token); return (*cpp2::impl::assert_not_null(get_base())).code; } -#line 1066 "regex.h2" +#line 1068 "regex.h2" alternative_token::alternative_token() : regex_token_empty{ "" }{} -#line 1068 "regex.h2" +#line 1070 "regex.h2" [[nodiscard]] auto alternative_token::parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '|') {return nullptr; } @@ -2523,15 +2525,15 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a alternative_token::~alternative_token() noexcept{} -#line 1082 "regex.h2" +#line 1084 "regex.h2" alternative_token_gen::alternative_token_gen(cpp2::impl::in<token_vec> a) : regex_token{ gen_string(a) } , alternatives{ a }{ -#line 1085 "regex.h2" +#line 1087 "regex.h2" } -#line 1087 "regex.h2" +#line 1089 "regex.h2" auto alternative_token_gen::generate_code(generation_context& ctx) const -> void{ std::string functions {""}; @@ -2548,14 +2550,14 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a ctx.add_statefull(next_name, ("cpp2::regex::alternative_token_matcher<char>::match(" + cpp2::to_string(ctx.match_parameters()) + ", other, " + cpp2::to_string(next_name) + " " + cpp2::to_string(cpp2::move(functions)) + ")")); } -#line 1103 "regex.h2" +#line 1105 "regex.h2" auto alternative_token_gen::add_groups(std::set<int>& groups) const -> void{ for ( auto const& cur : alternatives ) { (*cpp2::impl::assert_not_null(cur)).add_groups(groups); } } -#line 1109 "regex.h2" +#line 1111 "regex.h2" [[nodiscard]] auto alternative_token_gen::gen_string(cpp2::impl::in<token_vec> a) -> std::string{ std::string r {""}; std::string sep {""}; @@ -2570,11 +2572,11 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a alternative_token_gen::~alternative_token_gen() noexcept{} -#line 1124 "regex.h2" +#line 1126 "regex.h2" template <typename CharT> [[nodiscard]] auto alternative_token_matcher<CharT>::match(auto const& cur, auto& ctx, auto const& end_func, auto const& tail, auto const& ...functions) -> auto{ return match_first(cur, ctx, end_func, tail, functions...); } -#line 1127 "regex.h2" +#line 1129 "regex.h2" template <typename CharT> template<typename ...Other> [[nodiscard]] auto alternative_token_matcher<CharT>::match_first(auto const& cur, auto& ctx, auto const& end_func, auto const& tail, auto const& cur_func, auto const& cur_reset, Other const& ...other) -> auto{ auto inner_call {[_0 = (tail), _1 = (end_func)](auto const& tail_cur, auto& tail_ctx) -> auto{ return _0(tail_cur, tail_ctx, _1); @@ -2593,14 +2595,14 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a } } -#line 1151 "regex.h2" +#line 1153 "regex.h2" any_token::any_token(cpp2::impl::in<bool> single_line) : regex_token_check{ ".", ("any_token_matcher<char, " + cpp2::to_string(single_line) + ">") }{ -#line 1153 "regex.h2" +#line 1155 "regex.h2" } -#line 1155 "regex.h2" +#line 1157 "regex.h2" [[nodiscard]] auto any_token::parse(parse_context& ctx) -> token_ptr{ if ('.' != ctx.current()) {return nullptr; } @@ -2609,7 +2611,7 @@ template<typename Func> [[nodiscard]] auto make_on_return(Func const& func) -> a any_token::~any_token() noexcept{} -#line 1162 "regex.h2" +#line 1164 "regex.h2" template<typename CharT, bool single_line> [[nodiscard]] auto any_token_matcher(auto& cur, auto& ctx) -> bool{ if (cur != ctx.end // Any char except the end && (single_line || *cpp2::impl::assert_not_null(cur) != '\n')) {// Do not match new lines in multi line mode. @@ -2621,21 +2623,21 @@ template<typename CharT, bool single_line> [[nodiscard]] auto any_token_matcher( } } -#line 1181 "regex.h2" +#line 1183 "regex.h2" char_token::char_token(cpp2::impl::in<char> t, cpp2::impl::in<bool> ignore_case_) : regex_token{ std::string(1, t) } , token{ t } , ignore_case{ ignore_case_ }{ -#line 1185 "regex.h2" +#line 1187 "regex.h2" } -#line 1187 "regex.h2" +#line 1189 "regex.h2" [[nodiscard]] auto char_token::parse(parse_context& ctx) -> token_ptr{ return CPP2_UFCS_TEMPLATE(cpp2_new<char_token>)(cpp2::shared, ctx.current(), ctx.get_modifiers().has(expression_flags::case_insensitive)); } -#line 1191 "regex.h2" +#line 1193 "regex.h2" auto char_token::generate_code(generation_context& ctx) const -> void{ if (ignore_case) { std::string upper {token}; @@ -2643,14 +2645,14 @@ template<typename CharT, bool single_line> [[nodiscard]] auto any_token_matcher( { size_t i{0}; -#line 1196 "regex.h2" +#line 1198 "regex.h2" for( ; cpp2::impl::cmp_less(i,token.size()); i += 1 ) { CPP2_ASSERT_IN_BOUNDS(lower, i) = string_util::safe_tolower(CPP2_ASSERT_IN_BOUNDS(token, i)); CPP2_ASSERT_IN_BOUNDS(upper, i) = string_util::safe_toupper(CPP2_ASSERT_IN_BOUNDS(token, i)); } } -#line 1201 "regex.h2" +#line 1203 "regex.h2" if (upper != lower) { gen_case_insensitive(cpp2::move(lower), cpp2::move(upper), ctx); } @@ -2663,7 +2665,7 @@ size_t i{0}; } } -#line 1213 "regex.h2" +#line 1215 "regex.h2" auto char_token::gen_case_insensitive(cpp2::impl::in<std::string> lower, cpp2::impl::in<std::string> upper, generation_context& ctx) const& -> void{ std::string name {"str_" + cpp2::to_string(ctx.gen_temp())}; std::string lower_name {"lower_" + cpp2::to_string(name)}; @@ -2684,7 +2686,7 @@ size_t i{0}; ctx.add("else { break; }"); } -#line 1233 "regex.h2" +#line 1235 "regex.h2" auto char_token::gen_case_sensitive(generation_context& ctx) const& -> void{ std::string name {"str_" + cpp2::to_string(ctx.gen_temp())}; auto size {token.size()}; @@ -2702,7 +2704,7 @@ size_t i{0}; ctx.add("else { break; }"); } -#line 1250 "regex.h2" +#line 1252 "regex.h2" [[nodiscard]] auto char_token::add_escapes(std::string str) const& -> std::string{ str = string_util::replace_all(str, "\\", "\\\\"); str = string_util::replace_all(str, "\a", "\\a"); @@ -2715,7 +2717,7 @@ size_t i{0}; return cpp2::move(str); } -#line 1262 "regex.h2" +#line 1264 "regex.h2" auto char_token::append(char_token const& that) & -> void{ (*this).token += that.token; (*this).string_rep += that.string_rep; @@ -2723,17 +2725,17 @@ size_t i{0}; char_token::~char_token() noexcept{} -#line 1310 "regex.h2" +#line 1312 "regex.h2" class_token::class_token(cpp2::impl::in<bool> negate_, cpp2::impl::in<bool> case_insensitive_, cpp2::impl::in<std::string> class_str_, cpp2::impl::in<std::string> str) : regex_token{ str } , negate{ negate_ } , case_insensitive{ case_insensitive_ } , class_str{ class_str_ }{ -#line 1315 "regex.h2" +#line 1317 "regex.h2" } -#line 1318 "regex.h2" +#line 1320 "regex.h2" [[nodiscard]] auto class_token::parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '[') {return nullptr; } @@ -2841,12 +2843,12 @@ size_t i{0}; return CPP2_UFCS_TEMPLATE(cpp2_new<class_token>)(cpp2::shared, cpp2::move(is_negate), ctx.get_modifiers().has(expression_flags::case_insensitive), cpp2::move(inner), cpp2::move(string_rep)); } -#line 1425 "regex.h2" +#line 1427 "regex.h2" auto class_token::generate_code(generation_context& ctx) const -> void{ ctx.add_check(("class_token_matcher<char, " + cpp2::to_string(negate) + ", " + cpp2::to_string(case_insensitive) + ", " + cpp2::to_string(class_str) + ">::match(" + cpp2::to_string(ctx.match_parameters()) + ")")); } -#line 1430 "regex.h2" +#line 1432 "regex.h2" [[nodiscard]] auto class_token::create_matcher(cpp2::impl::in<std::string> name, cpp2::impl::in<std::string> template_arguments) -> std::string{ auto sep {", "}; if (template_arguments.empty()) {sep = ""; } @@ -2856,7 +2858,7 @@ size_t i{0}; class_token::~class_token() noexcept{} -#line 1440 "regex.h2" +#line 1442 "regex.h2" template <typename CharT, bool negate, bool case_insensitive, typename ...List> [[nodiscard]] auto class_token_matcher<CharT,negate,case_insensitive,List...>::match(auto& cur, auto& ctx) -> bool{ if constexpr (case_insensitive) { if (cur != ctx.end && negate != (match_any<List...>(string_util::safe_tolower(*cpp2::impl::assert_not_null(cur))) || match_any<List...>(string_util::safe_toupper(*cpp2::impl::assert_not_null(cur))))) { @@ -2878,7 +2880,7 @@ size_t i{0}; } } -#line 1461 "regex.h2" +#line 1463 "regex.h2" template <typename CharT, bool negate, bool case_insensitive, typename ...List> template<typename First, typename ...Other> [[nodiscard]] auto class_token_matcher<CharT,negate,case_insensitive,List...>::match_any(cpp2::impl::in<CharT> c) -> bool{ bool r {First::includes(c)}; @@ -2891,11 +2893,11 @@ size_t i{0}; return r; } -#line 1488 "regex.h2" +#line 1490 "regex.h2" [[nodiscard]] auto escape_token_parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '\\') {return nullptr; } -#line 1492 "regex.h2" +#line 1494 "regex.h2" if (std::string::npos == std::string("afenrt^.[]()*{}?+|\\").find(ctx.peek())) { return nullptr; } @@ -2927,7 +2929,7 @@ size_t i{0}; } -#line 1525 "regex.h2" +#line 1527 "regex.h2" [[nodiscard]] auto global_group_reset_token_parse(parse_context& ctx) -> token_ptr{ if (!((ctx.current() == '\\' && ctx.peek() == 'K'))) {return nullptr; } @@ -2935,16 +2937,16 @@ size_t i{0}; return CPP2_UFCS_TEMPLATE(cpp2_new<regex_token_code>)(cpp2::shared, "\\K", "ctx..set_group_start(0, r.pos);"); } -#line 1544 "regex.h2" +#line 1546 "regex.h2" group_ref_token::group_ref_token(cpp2::impl::in<int> id_, cpp2::impl::in<bool> case_insensitive_, cpp2::impl::in<std::string> str) : regex_token{ str } , id{ id_ } , case_insensitive{ case_insensitive_ }{ -#line 1548 "regex.h2" +#line 1550 "regex.h2" } -#line 1550 "regex.h2" +#line 1552 "regex.h2" [[nodiscard]] auto group_ref_token::parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '\\') {return nullptr; } @@ -3037,14 +3039,14 @@ size_t i{0}; return CPP2_UFCS_TEMPLATE(cpp2_new<group_ref_token>)(cpp2::shared, cpp2::move(group_id), ctx.get_modifiers().has(expression_flags::case_insensitive), cpp2::move(str)); } -#line 1642 "regex.h2" +#line 1644 "regex.h2" auto group_ref_token::generate_code(generation_context& ctx) const -> void{ ctx.add_check(("group_ref_token_matcher<char, " + cpp2::to_string(id) + ", " + cpp2::to_string(case_insensitive) + ">(" + cpp2::to_string(ctx.match_parameters()) + ")")); } group_ref_token::~group_ref_token() noexcept{} -#line 1647 "regex.h2" +#line 1649 "regex.h2" template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto group_ref_token_matcher(auto& cur, auto& ctx) -> bool{ auto g {ctx.get_group(group)}; @@ -3070,7 +3072,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr } } -#line 1688 "regex.h2" +#line 1690 "regex.h2" [[nodiscard]] auto group_token::parse_lookahead(parse_context& ctx, cpp2::impl::in<std::string> syntax, cpp2::impl::in<bool> positive) -> token_ptr{ static_cast<void>(ctx.next());// Skip last token defining the syntax @@ -3084,7 +3086,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr return r; } -#line 1701 "regex.h2" +#line 1703 "regex.h2" [[nodiscard]] auto group_token::parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '(') {return nullptr; } @@ -3212,7 +3214,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr } } -#line 1828 "regex.h2" +#line 1830 "regex.h2" [[nodiscard]] auto group_token::gen_string(cpp2::impl::in<std::string> name, cpp2::impl::in<bool> name_brackets, cpp2::impl::in<bool> has_modifier, cpp2::impl::in<std::string> modifiers, cpp2::impl::in<token_ptr> inner_) -> std::string{ std::string start {"("}; if (0 != name.size()) { @@ -3230,7 +3232,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr return cpp2::move(start) + (*cpp2::impl::assert_not_null(inner_)).to_string() + ")"; } -#line 1845 "regex.h2" +#line 1847 "regex.h2" auto group_token::generate_code(generation_context& ctx) const -> void{ if (-1 != number) { ctx.add(("ctx..set_group_start(" + cpp2::to_string(number) + ", r.pos);")); @@ -3250,7 +3252,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr } } -#line 1864 "regex.h2" +#line 1866 "regex.h2" auto group_token::add_groups(std::set<int>& groups) const -> void{ (*cpp2::impl::assert_not_null(inner)).add_groups(groups); if (-1 != number) { @@ -3260,7 +3262,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr group_token::~group_token() noexcept{} -#line 1874 "regex.h2" +#line 1876 "regex.h2" [[nodiscard]] auto hexadecimal_token_parse(parse_context& ctx) -> token_ptr{ if (!((ctx.current() == '\\' && ctx.peek() == 'x'))) {return nullptr; } @@ -3300,7 +3302,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr return r; } -#line 1915 "regex.h2" +#line 1917 "regex.h2" [[nodiscard]] auto line_end_token_parse(parse_context& ctx) -> token_ptr{ if (ctx.current() == '$' || (ctx.current() == '\\' && ctx.peek() == '$')) { if ((ctx.current() == '\\')) {static_cast<void>(ctx.next()); }// Skip escape @@ -3317,7 +3319,7 @@ template<typename CharT, int group, bool case_insensitive> [[nodiscard]] auto gr }} } -#line 1931 "regex.h2" +#line 1933 "regex.h2" template<typename CharT, bool match_new_line, bool match_new_line_before_end> [[nodiscard]] auto line_end_token_matcher(auto const& cur, auto& ctx) -> bool{ if (cur == ctx.end || (match_new_line && *cpp2::impl::assert_not_null(cur) == '\n')) { return true; @@ -3330,7 +3332,7 @@ template<typename CharT, bool match_new_line, bool match_new_line_before_end> [[ }} } -#line 1945 "regex.h2" +#line 1947 "regex.h2" [[nodiscard]] auto line_start_token_parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '^' && !((ctx.current() == '\\' && ctx.peek() == 'A'))) {return nullptr; } @@ -3343,35 +3345,35 @@ template<typename CharT, bool match_new_line, bool match_new_line_before_end> [[ } } -#line 1957 "regex.h2" +#line 1959 "regex.h2" template<typename CharT, bool match_new_line> [[nodiscard]] auto line_start_token_matcher(auto const& cur, auto& ctx) -> bool{ return cur == ctx.begin || // Start of string (match_new_line && *cpp2::impl::assert_not_null((cur - 1)) == '\n'); // Start of new line } -#line 1972 "regex.h2" +#line 1974 "regex.h2" lookahead_token::lookahead_token(cpp2::impl::in<bool> positive_) : regex_token{ "" } , positive{ positive_ }{ -#line 1974 "regex.h2" +#line 1976 "regex.h2" } -#line 1976 "regex.h2" +#line 1978 "regex.h2" auto lookahead_token::generate_code(generation_context& ctx) const -> void{ auto inner_name {ctx.generate_func(inner)}; ctx.add_check(("lookahead_token_matcher<char, " + cpp2::to_string(positive) + ">(" + cpp2::to_string(ctx.match_parameters()) + ", " + cpp2::to_string(cpp2::move(inner_name)) + ")")); } -#line 1982 "regex.h2" +#line 1984 "regex.h2" auto lookahead_token::add_groups(std::set<int>& groups) const -> void{ (*cpp2::impl::assert_not_null(inner)).add_groups(groups); } lookahead_token::~lookahead_token() noexcept{} -#line 1987 "regex.h2" +#line 1989 "regex.h2" template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_matcher(auto const& cur, auto& ctx, auto const& func) -> bool{ auto r {func(cur, ctx, true_end_func())}; if (!(positive)) { @@ -3381,7 +3383,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return cpp2::move(r).matched; } -#line 1999 "regex.h2" +#line 2001 "regex.h2" [[nodiscard]] auto named_class_token_parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '\\') {return nullptr; } @@ -3406,7 +3408,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return CPP2_UFCS_TEMPLATE(cpp2_new<regex_token_check>)(cpp2::shared, ("\\" + cpp2::to_string(ctx.current())), (cpp2::to_string(cpp2::move(name)) + "<char, " + cpp2::to_string(ctx.get_modifiers().has(expression_flags::case_insensitive)) + ">::match")); } -#line 2039 "regex.h2" +#line 2041 "regex.h2" [[nodiscard]] auto octal_token_parse(parse_context& ctx) -> token_ptr{ if (!((ctx.current() == '\\' && ctx.peek() == 'o'))) {return nullptr; } @@ -3431,16 +3433,16 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return r; } -#line 2069 "regex.h2" +#line 2071 "regex.h2" inline CPP2_CONSTEXPR int range_flags::not_greedy{ 1 }; inline CPP2_CONSTEXPR int range_flags::greedy{ 2 }; inline CPP2_CONSTEXPR int range_flags::possessive{ 3 }; -#line 2084 "regex.h2" +#line 2086 "regex.h2" range_token::range_token() : regex_token{ "" }{} -#line 2086 "regex.h2" +#line 2088 "regex.h2" [[nodiscard]] auto range_token::parse(parse_context& ctx) -> token_ptr{ auto r {CPP2_UFCS_TEMPLATE(cpp2_new<range_token>)(cpp2::shared)}; if (ctx.current() == '{') { @@ -3484,7 +3486,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match } } -#line 2130 "regex.h2" +#line 2132 "regex.h2" // Check validity of the range. if (-1 != (*cpp2::impl::assert_not_null(r)).min_count) { if (!((cpp2::impl::cmp_less_eq(0,(*cpp2::impl::assert_not_null(r)).min_count)))) { @@ -3511,7 +3513,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return nullptr; } -#line 2156 "regex.h2" +#line 2158 "regex.h2" auto range_token::parse_modifier(parse_context& ctx) & -> void{ if (ctx.peek() == '?') { kind = range_flags::not_greedy; @@ -3523,7 +3525,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match }} } -#line 2167 "regex.h2" +#line 2169 "regex.h2" [[nodiscard]] auto range_token::gen_mod_string() const& -> std::string{ if (kind == range_flags::not_greedy) { return "?"; @@ -3536,7 +3538,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match }} } -#line 2179 "regex.h2" +#line 2181 "regex.h2" [[nodiscard]] auto range_token::gen_range_string() const& -> std::string{ std::string r {""}; if (min_count == max_count) { @@ -3555,7 +3557,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return r; } -#line 2197 "regex.h2" +#line 2199 "regex.h2" auto range_token::generate_code(generation_context& ctx) const -> void{ auto inner_name {ctx.generate_func(inner_token)}; std::set<int> groups {}; @@ -3566,14 +3568,14 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match ctx.add_statefull(next_name, ("cpp2::regex::range_token_matcher<char, " + cpp2::to_string(min_count) + ", " + cpp2::to_string(max_count) + ", " + cpp2::to_string(kind) + ">::match(" + cpp2::to_string(ctx.match_parameters()) + ", " + cpp2::to_string(cpp2::move(inner_name)) + ", " + cpp2::to_string(cpp2::move(reset_name)) + ", other, " + cpp2::to_string(next_name) + ")")); } -#line 2207 "regex.h2" +#line 2209 "regex.h2" auto range_token::add_groups(std::set<int>& groups) const -> void{ (*cpp2::impl::assert_not_null(inner_token)).add_groups(groups); } range_token::~range_token() noexcept{} -#line 2215 "regex.h2" +#line 2217 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> template<typename Iter> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::match(Iter const& cur, auto& ctx, auto const& inner, auto const& reset_func, auto const& end_func, auto const& tail) -> auto{ if (range_flags::possessive == kind) { return match_possessive(cur, ctx, inner, end_func, tail); @@ -3586,26 +3588,26 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match }} } -#line 2227 "regex.h2" +#line 2229 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::is_below_upper_bound(cpp2::impl::in<int> count) -> bool{ if (-1 == max_count) {return true; } else {return cpp2::impl::cmp_less(count,max_count); } } -#line 2232 "regex.h2" +#line 2234 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::is_below_lower_bound(cpp2::impl::in<int> count) -> bool{ if (-1 == min_count) {return false; } else {return cpp2::impl::cmp_less(count,min_count); } } -#line 2237 "regex.h2" +#line 2239 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::is_in_range(cpp2::impl::in<int> count) -> bool{ if (-1 != min_count && cpp2::impl::cmp_less(count,min_count)) {return false; } if (-1 != max_count && cpp2::impl::cmp_greater(count,max_count)) {return false; } return true; } -#line 2243 "regex.h2" +#line 2245 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> template<typename Iter> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::match_min_count(Iter const& cur, auto& ctx, auto const& inner, auto const& end_func, int& count_r) -> auto{// TODO: count_r as out parameter introduces a performance loss. auto res {ctx.pass(cur)}; auto count {0}; @@ -3621,7 +3623,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return res; } -#line 2258 "regex.h2" +#line 2260 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> template<typename Iter> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::match_greedy(cpp2::impl::in<int> count, Iter const& cur, Iter const& last_valid, auto& ctx, auto const& inner, auto const& reset_func, auto const& end_func, auto const& other) -> match_return<Iter>{ auto inner_call {[_0 = (count + 1), _1 = (cur), _2 = (inner), _3 = (reset_func), _4 = (end_func), _5 = (other)](auto const& tail_cur, auto& tail_ctx) -> auto{ return match_greedy(_0, tail_cur, _1, tail_ctx, _2, _3, _4, _5); @@ -3650,7 +3652,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return r; } -#line 2286 "regex.h2" +#line 2288 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> template<typename Iter> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::match_possessive(Iter const& cur, auto& ctx, auto const& inner, auto const& end_func, auto const& other) -> match_return<Iter>{ auto count {0}; auto r {match_min_count(cur, ctx, inner, end_func, count)}; @@ -3675,7 +3677,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return other(cpp2::move(pos), ctx, end_func); } -#line 2310 "regex.h2" +#line 2312 "regex.h2" template <typename CharT, int min_count, int max_count, int kind> template<typename Iter> [[nodiscard]] auto range_token_matcher<CharT,min_count,max_count,kind>::match_not_greedy(Iter const& cur, auto& ctx, auto const& inner, auto const& end_func, auto const& other) -> match_return<Iter>{ auto count {0}; auto start {match_min_count(cur, ctx, inner, end_func, count)}; @@ -3701,7 +3703,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match return other(cpp2::move(pos), ctx, end_func); // Upper bound reached. } -#line 2341 "regex.h2" +#line 2343 "regex.h2" [[nodiscard]] auto special_range_token::parse(parse_context& ctx) -> token_ptr{ auto r {CPP2_UFCS_TEMPLATE(cpp2_new<special_range_token>)(cpp2::shared)}; char symbol {'\0'}; @@ -3724,7 +3726,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match if (!(ctx.has_token())) {return ctx.error(("'" + cpp2::to_string(ctx.current()) + "' without previous element.")); } -#line 2364 "regex.h2" +#line 2366 "regex.h2" (*cpp2::impl::assert_not_null(r)).parse_modifier(ctx); (*cpp2::impl::assert_not_null(r)).inner_token = ctx.pop_token(); @@ -3734,7 +3736,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match special_range_token::~special_range_token() noexcept{} -#line 2376 "regex.h2" +#line 2378 "regex.h2" [[nodiscard]] auto word_boundary_token_parse(parse_context& ctx) -> token_ptr{ if (ctx.current() != '\\') {return nullptr; } @@ -3751,7 +3753,7 @@ template<typename CharT, bool positive> [[nodiscard]] auto lookahead_token_match }} } -#line 2392 "regex.h2" +#line 2394 "regex.h2" template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_matcher(auto& cur, auto& ctx) -> bool{ word_class<CharT> words {}; auto is_match {false}; @@ -3776,32 +3778,32 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat return is_match; } -#line 2435 "regex.h2" +#line 2437 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> regular_expression<CharT,matcher_wrapper>::search_return<Iter>::search_return(cpp2::impl::in<bool> matched_, context<Iter> const& ctx_, Iter const& pos_) : matched{ matched_ } , ctx{ ctx_ } , pos{ unsafe_narrow<int>(std::distance(ctx_.begin, pos_)) }{ -#line 2439 "regex.h2" +#line 2441 "regex.h2" } -#line 2441 "regex.h2" +#line 2443 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::group_number() const& -> auto { return ctx.size(); } -#line 2442 "regex.h2" +#line 2444 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::group(cpp2::impl::in<int> g) const& -> auto { return ctx.get_group_string(g); } -#line 2443 "regex.h2" +#line 2445 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::group_start(cpp2::impl::in<int> g) const& -> auto { return ctx.get_group_start(g); } -#line 2444 "regex.h2" +#line 2446 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::group_end(cpp2::impl::in<int> g) const& -> auto { return ctx.get_group_end(g); } -#line 2446 "regex.h2" +#line 2448 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::group(cpp2::impl::in<bstring<CharT>> g) const& -> auto { return group(get_group_id(g)); } -#line 2447 "regex.h2" +#line 2449 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::group_start(cpp2::impl::in<bstring<CharT>> g) const& -> auto { return group_start(get_group_id(g)); } -#line 2448 "regex.h2" +#line 2450 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::group_end(cpp2::impl::in<bstring<CharT>> g) const& -> auto { return group_end(get_group_id(g)); } -#line 2450 "regex.h2" +#line 2452 "regex.h2" template <typename CharT, typename matcher_wrapper> template <typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search_return<Iter>::get_group_id(cpp2::impl::in<bstring<CharT>> g) const& -> auto{ auto group_id {matcher<Iter>::get_named_group_index(g)}; if (-1 == group_id) { @@ -3810,13 +3812,13 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat return group_id; } -#line 2459 "regex.h2" +#line 2461 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::match(cpp2::impl::in<bview<CharT>> str) const& -> auto { return match(str.begin(), str.end()); } -#line 2460 "regex.h2" +#line 2462 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::match(cpp2::impl::in<bview<CharT>> str, auto const& start) const& -> auto { return match(get_iter(str, start), str.end()); } -#line 2461 "regex.h2" +#line 2463 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::match(cpp2::impl::in<bview<CharT>> str, auto const& start, auto const& length) const& -> auto { return match(get_iter(str, start), get_iter(str, start + length)); } -#line 2462 "regex.h2" +#line 2464 "regex.h2" template <typename CharT, typename matcher_wrapper> template<typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::match(Iter const& start, Iter const& end) const& -> search_return<Iter>{ context<Iter> ctx {start, end}; @@ -3824,13 +3826,13 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat return search_return<Iter>(r.matched && r.pos == end, cpp2::move(ctx), r.pos); } -#line 2469 "regex.h2" +#line 2471 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search(cpp2::impl::in<bview<CharT>> str) const& -> auto { return search(str.begin(), str.end()); } -#line 2470 "regex.h2" +#line 2472 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search(cpp2::impl::in<bview<CharT>> str, auto const& start) const& -> auto { return search(get_iter(str, start), str.end()); } -#line 2471 "regex.h2" +#line 2473 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search(cpp2::impl::in<bview<CharT>> str, auto const& start, auto const& length) const& -> auto { return search(get_iter(str, start), get_iter(str, start + length)); } -#line 2472 "regex.h2" +#line 2474 "regex.h2" template <typename CharT, typename matcher_wrapper> template<typename Iter> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::search(Iter const& start, Iter const& end) const& -> search_return<Iter>{ context<Iter> ctx {start, end}; auto r {CPP2_UFCS(fail)(ctx)}; @@ -3850,10 +3852,10 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat return search_return<Iter>(r.matched, cpp2::move(ctx), cpp2::move(r).pos); } -#line 2491 "regex.h2" +#line 2493 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::to_string() const& -> auto { return matcher_wrapper::to_string(); } -#line 2496 "regex.h2" +#line 2498 "regex.h2" template <typename CharT, typename matcher_wrapper> [[nodiscard]] auto regular_expression<CharT,matcher_wrapper>::get_iter(cpp2::impl::in<bview<CharT>> str, auto const& pos) -> auto{ if (cpp2::impl::cmp_less(pos,str.size())) { return str.begin() + pos; @@ -3863,15 +3865,15 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat } } -#line 2524 "regex.h2" +#line 2526 "regex.h2" template <typename Error_out> regex_generator<Error_out>::regex_generator(cpp2::impl::in<std::string_view> r, Error_out const& e) : regex{ r } , error_out{ e }{ -#line 2527 "regex.h2" +#line 2529 "regex.h2" } -#line 2529 "regex.h2" +#line 2531 "regex.h2" template <typename Error_out> [[nodiscard]] auto regex_generator<Error_out>::parse() & -> std::string{ // Extract modifiers and adapt regex. @@ -3907,7 +3909,7 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat return source; } -#line 2564 "regex.h2" +#line 2566 "regex.h2" template <typename Error_out> auto regex_generator<Error_out>::extract_modifiers() & -> void{ if (regex.find_first_of("'/") == 0) { char mod_token {CPP2_ASSERT_IN_BOUNDS_LITERAL(regex, 0)}; @@ -3922,7 +3924,7 @@ template<typename CharT, bool negate> [[nodiscard]] auto word_boundary_token_mat } } -#line 2579 "regex.h2" +#line 2581 "regex.h2" template<typename Err> [[nodiscard]] auto generate_regex(cpp2::impl::in<std::string_view> regex, Err const& err) -> std::string{ regex_generator<Err> parser {regex, err}; auto r {parser.parse()}; diff --git a/regression-tests/test-results/gcc-13/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_01_char_matcher.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_01_char_matcher.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_01_char_matcher.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_01_char_matcher.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_01_char_matcher.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_01_char_matcher.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_02_ranges.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_02_ranges.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_02_ranges.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_02_ranges.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_02_ranges.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_02_ranges.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_03_wildcard.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_03_wildcard.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_03_wildcard.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_03_wildcard.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_03_wildcard.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_03_wildcard.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_04_start_end.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_04_start_end.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_04_start_end.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_04_start_end.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_04_start_end.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_04_start_end.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_05_classes.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_05_classes.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_05_classes.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_05_classes.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_05_classes.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_05_classes.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_06_boundaries.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_06_boundaries.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_06_boundaries.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_06_boundaries.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_06_boundaries.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_06_boundaries.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_07_short_classes.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_07_short_classes.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_07_short_classes.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_07_short_classes.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_07_short_classes.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_07_short_classes.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_08_alternatives.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_08_alternatives.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_08_alternatives.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_08_alternatives.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_08_alternatives.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_08_alternatives.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_09_groups.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_09_groups.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_09_groups.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_09_groups.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_09_groups.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_09_groups.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_10_escapes.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_10_escapes.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_10_escapes.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_10_escapes.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_10_escapes.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_10_escapes.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_11_group_references.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_11_group_references.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_11_group_references.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_11_group_references.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_11_group_references.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_11_group_references.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_12_case_insensitive.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_12_case_insensitive.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_12_case_insensitive.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_12_case_insensitive.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_12_case_insensitive.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_12_case_insensitive.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_13_posessive_modifier.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_13_posessive_modifier.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_13_posessive_modifier.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_13_posessive_modifier.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_13_posessive_modifier.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_13_posessive_modifier.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_14_multiline_modifier.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_14_multiline_modifier.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_14_multiline_modifier.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_14_multiline_modifier.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_14_multiline_modifier.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_14_multiline_modifier.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_15_group_modifiers.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_15_group_modifiers.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_15_group_modifiers.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_15_group_modifiers.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_15_group_modifiers.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_15_group_modifiers.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_16_perl_syntax_modifier.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_16_perl_syntax_modifier.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_17_comments.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_17_comments.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_17_comments.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_17_comments.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_17_comments.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_17_comments.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_18_branch_reset.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_18_branch_reset.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_18_branch_reset.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_18_branch_reset.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_18_branch_reset.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_18_branch_reset.cpp.output diff --git a/regression-tests/test-results/gcc-13/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_19_lookahead.cpp.execution similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_19_lookahead.cpp.execution rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_19_lookahead.cpp.execution diff --git a/regression-tests/test-results/gcc-13/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_19_lookahead.cpp.output similarity index 100% rename from regression-tests/test-results/gcc-13/pure2-regex_19_lookahead.cpp.output rename to regression-tests/test-results/apple-clang-14-c++2b/pure2-regex_19_lookahead.cpp.output diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/apple-clang-15-c++2b/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/clang-12-c++20/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/clang-12-c++20/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-12-c++20/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/clang-12-c++20/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/clang-15-c++20-libcpp/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/clang-15-c++20/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/clang-15-c++20/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-15-c++20/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/clang-15-c++20/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/clang-18-c++20/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/gcc-10-c++20/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/gcc-10-c++20/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-10-c++20/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/gcc-10-c++20/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-13-c++2b/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/gcc-13-c++2b/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/gcc-14-c++2b/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/gcc-14-c++2b/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++20/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/msvc-2022-c++20/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_01_char_matcher.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_01_char_matcher.cpp.execution new file mode 100644 index 000000000..af124736e --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_01_char_matcher.cpp.execution @@ -0,0 +1,14 @@ +Running tests_01_char_matcher: +01_y: OK regex: abc parsed_regex: abc str: abc result_expr: $& expected_results abc +02_y: OK regex: abc parsed_regex: abc str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: abc parsed_regex: abc str: abc result_expr: $+[0] expected_results 3 +04_n: OK regex: abc parsed_regex: abc str: xbc result_expr: - expected_results - +05_n: OK regex: abc parsed_regex: abc str: axc result_expr: - expected_results - +06_n: OK regex: abc parsed_regex: abc str: abx result_expr: - expected_results - +07_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $& expected_results abc +08_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $-[0] expected_results 1 +09_y: OK regex: abc parsed_regex: abc str: xabcy result_expr: $+[0] expected_results 4 +10_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $& expected_results abc +11_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $-[0] expected_results 2 +12_y: OK regex: abc parsed_regex: abc str: ababc result_expr: $+[0] expected_results 5 + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_01_char_matcher.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_01_char_matcher.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_02_ranges.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_02_ranges.cpp.execution new file mode 100644 index 000000000..dc0b36002 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_02_ranges.cpp.execution @@ -0,0 +1,42 @@ +Running tests_02_ranges: +01_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $& expected_results abc +02_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $-[0] expected_results 0 +03_y: OK regex: ab*c parsed_regex: ab*c str: abc result_expr: $+[0] expected_results 3 +04_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $& expected_results abc +05_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $-[0] expected_results 0 +06_y: OK regex: ab*bc parsed_regex: ab*bc str: abc result_expr: $+[0] expected_results 3 +07_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $& expected_results abbc +08_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $-[0] expected_results 0 +09_y: OK regex: ab*bc parsed_regex: ab*bc str: abbc result_expr: $+[0] expected_results 4 +10_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $& expected_results abbbbc +11_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: ab*bc parsed_regex: ab*bc str: abbbbc result_expr: $+[0] expected_results 6 +13_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $& expected_results abbbbc +14_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $-[0] expected_results 0 +15_y: OK regex: ab{0,}bc parsed_regex: ab{0,}bc str: abbbbc result_expr: $+[0] expected_results 6 +16_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $& expected_results abbc +17_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $-[0] expected_results 0 +18_y: OK regex: ab+bc parsed_regex: ab+bc str: abbc result_expr: $+[0] expected_results 4 +19_n: OK regex: ab+bc parsed_regex: ab+bc str: abc result_expr: - expected_results - +20_n: OK regex: ab+bc parsed_regex: ab+bc str: abq result_expr: - expected_results - +21_n: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abq result_expr: - expected_results - +22_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $& expected_results abbbbc +23_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $-[0] expected_results 0 +24_y: OK regex: ab+bc parsed_regex: ab+bc str: abbbbc result_expr: $+[0] expected_results 6 +25_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $& expected_results abbbbc +26_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $-[0] expected_results 0 +27_y: OK regex: ab{1,}bc parsed_regex: ab{1,}bc str: abbbbc result_expr: $+[0] expected_results 6 +28_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $& expected_results abbbbc +29_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $-[0] expected_results 0 +30_y: OK regex: ab{1,3}bc parsed_regex: ab{1,3}bc str: abbbbc result_expr: $+[0] expected_results 6 +31_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $& expected_results abbbbc +32_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $-[0] expected_results 0 +33_y: OK regex: ab{3,4}bc parsed_regex: ab{3,4}bc str: abbbbc result_expr: $+[0] expected_results 6 +34_n: OK regex: ab{4,5}bc parsed_regex: ab{4,5}bc str: abbbbc result_expr: - expected_results - +35_y: OK regex: ab?bc parsed_regex: ab?bc str: abbc result_expr: $& expected_results abbc +36_y: OK regex: ab?bc parsed_regex: ab?bc str: abc result_expr: $& expected_results abc +37_y: OK regex: ab{0,1}bc parsed_regex: ab{0,1}bc str: abc result_expr: $& expected_results abc +38_n: OK regex: ab?bc parsed_regex: ab?bc str: abbbbc result_expr: - expected_results - +39_y: OK regex: ab?c parsed_regex: ab?c str: abc result_expr: $& expected_results abc +40_y: OK regex: ab{0,1}c parsed_regex: ab{0,1}c str: abc result_expr: $& expected_results abc + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_02_ranges.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_02_ranges.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_03_wildcard.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_03_wildcard.cpp.execution new file mode 100644 index 000000000..f3f0ea9cc --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_03_wildcard.cpp.execution @@ -0,0 +1,22 @@ +Running tests_03_wildcard: +01_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $& expected_results a +02_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK regex: .{1} parsed_regex: .{1} str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $& expected_results abbb +05_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK regex: .{3,4} parsed_regex: .{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $& expected_results a +08_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $-[0] expected_results 0 +09_y: OK regex: \N{1} parsed_regex: \N{1} str: abbbbc result_expr: $+[0] expected_results 1 +10_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $& expected_results abbb +11_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $-[0] expected_results 0 +12_y: OK regex: \N{3,4} parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +13_y: OK Warning: Parsed regex does not match. regex: \N{ 3 , 4 } parsed_regex: \N{3,4} str: abbbbc result_expr: $+[0] expected_results 4 +14_y: OK regex: a.c parsed_regex: a.c str: abc result_expr: $& expected_results abc +15_y: OK regex: a.c parsed_regex: a.c str: axc result_expr: $& expected_results axc +16_y: OK regex: a\Nc parsed_regex: a\Nc str: abc result_expr: $& expected_results abc +17_y: OK regex: a.*c parsed_regex: a.*c str: axyzc result_expr: $& expected_results axyzc +18_y: OK regex: a\N*c parsed_regex: a\N*c str: axyzc result_expr: $& expected_results axyzc +19_n: OK regex: a.*c parsed_regex: a.*c str: axyzd result_expr: - expected_results - +20_n: OK regex: a\N*c parsed_regex: a\N*c str: axyzd result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_03_wildcard.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_03_wildcard.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_04_start_end.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_04_start_end.cpp.execution new file mode 100644 index 000000000..6fef36434 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_04_start_end.cpp.execution @@ -0,0 +1,11 @@ +Running tests_04_start_end: +01_y: OK regex: ^abc$ parsed_regex: ^abc$ str: abc result_expr: $& expected_results abc +02_n: OK regex: ^abc$ parsed_regex: ^abc$ str: abcc result_expr: - expected_results - +03_y: OK regex: ^abc parsed_regex: ^abc str: abcc result_expr: $& expected_results abc +04_n: OK regex: ^abc$ parsed_regex: ^abc$ str: aabc result_expr: - expected_results - +05_y: OK regex: abc$ parsed_regex: abc$ str: aabc result_expr: $& expected_results abc +06_n: OK regex: abc$ parsed_regex: abc$ str: aabcd result_expr: - expected_results - +07_y: OK regex: ^ parsed_regex: ^ str: abc result_expr: $& expected_results +08_y: OK regex: $ parsed_regex: $ str: abc result_expr: $& expected_results +09_n: OK regex: $b parsed_regex: $b str: b result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_04_start_end.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_04_start_end.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_05_classes.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_05_classes.cpp.execution new file mode 100644 index 000000000..306bf3395 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_05_classes.cpp.execution @@ -0,0 +1,21 @@ +Running tests_05_classes: +01_n: OK regex: a[bc]d parsed_regex: a[bc]d str: abc result_expr: - expected_results - +02_y: OK regex: a[bc]d parsed_regex: a[bc]d str: abd result_expr: $& expected_results abd +03_y: OK regex: a[b]d parsed_regex: a[b]d str: abd result_expr: $& expected_results abd +04_y: OK regex: [a][b][d] parsed_regex: [a][b][d] str: abd result_expr: $& expected_results abd +05_y: OK regex: .[b]. parsed_regex: .[b]. str: abd result_expr: $& expected_results abd +06_n: OK regex: .[b]. parsed_regex: .[b]. str: aBd result_expr: - expected_results - +07_n: OK regex: a[b-d]e parsed_regex: a[b-d]e str: abd result_expr: - expected_results - +08_y: OK regex: a[b-d]e parsed_regex: a[b-d]e str: ace result_expr: $& expected_results ace +09_y: OK regex: a[b-d] parsed_regex: a[b-d] str: aac result_expr: $& expected_results ac +10_y: OK regex: a[-b] parsed_regex: a[-b] str: a- result_expr: $& expected_results a- +11_y: OK regex: a[b-] parsed_regex: a[b-] str: a- result_expr: $& expected_results a- +12_y: OK regex: a] parsed_regex: a] str: a] result_expr: $& expected_results a] +13_y: OK regex: a[]]b parsed_regex: a[]]b str: a]b result_expr: $& expected_results a]b +14_y: OK regex: a[^bc]d parsed_regex: a[^bc]d str: aed result_expr: $& expected_results aed +15_n: OK regex: a[^bc]d parsed_regex: a[^bc]d str: abd result_expr: - expected_results - +16_y: OK regex: a[^-b]c parsed_regex: a[^-b]c str: adc result_expr: $& expected_results adc +17_n: OK regex: a[^-b]c parsed_regex: a[^-b]c str: a-c result_expr: - expected_results - +18_n: OK regex: a[^]b]c parsed_regex: a[^]b]c str: a]c result_expr: - expected_results - +19_y: OK regex: a[^]b]c parsed_regex: a[^]b]c str: adc result_expr: $& expected_results adc + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_05_classes.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_05_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_06_boundaries.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_06_boundaries.cpp.execution new file mode 100644 index 000000000..420a4c587 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_06_boundaries.cpp.execution @@ -0,0 +1,19 @@ +Running tests_06_boundaries: +01_y: OK regex: \ba\b parsed_regex: \ba\b str: a- result_expr: - expected_results - +02_y: OK regex: \ba\b parsed_regex: \ba\b str: -a result_expr: - expected_results - +03_y: OK regex: \ba\b parsed_regex: \ba\b str: -a- result_expr: - expected_results - +04_n: OK regex: \by\b parsed_regex: \by\b str: xy result_expr: - expected_results - +05_n: OK regex: \by\b parsed_regex: \by\b str: yz result_expr: - expected_results - +06_n: OK regex: \by\b parsed_regex: \by\b str: xyz result_expr: - expected_results - +07_n: OK regex: \Ba\B parsed_regex: \Ba\B str: a- result_expr: - expected_results - +08_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a result_expr: - expected_results - +09_n: OK regex: \Ba\B parsed_regex: \Ba\B str: -a- result_expr: - expected_results - +10_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +11_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $-[0] expected_results 1 +12_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: $+[0] expected_results 2 +13_y: OK regex: \By\b parsed_regex: \By\b str: xy result_expr: - expected_results - +14_y: OK regex: \by\B parsed_regex: \by\B str: yz result_expr: - expected_results - +15_y: OK regex: \By\B parsed_regex: \By\B str: xyz result_expr: - expected_results - +16_n: OK regex: \b parsed_regex: \b str: result_expr: - expected_results - +17_y: OK regex: \B parsed_regex: \B str: result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_06_boundaries.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_06_boundaries.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_07_short_classes.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_07_short_classes.cpp.execution new file mode 100644 index 000000000..519c05f92 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_07_short_classes.cpp.execution @@ -0,0 +1,26 @@ +Running tests_07_short_classes: +01_y: OK regex: \w parsed_regex: \w str: a result_expr: - expected_results - +02_n: OK regex: \w parsed_regex: \w str: - result_expr: - expected_results - +03_n: OK regex: \W parsed_regex: \W str: a result_expr: - expected_results - +04_y: OK regex: \W parsed_regex: \W str: - result_expr: - expected_results - +05_y: OK regex: a\sb parsed_regex: a\sb str: a b result_expr: - expected_results - +06_n: OK regex: a\sb parsed_regex: a\sb str: a-b result_expr: - expected_results - +07_n: OK regex: a\Sb parsed_regex: a\Sb str: a b result_expr: - expected_results - +08_y: OK regex: a\Sb parsed_regex: a\Sb str: a-b result_expr: - expected_results - +09_y: OK regex: \d parsed_regex: \d str: 1 result_expr: - expected_results - +10_n: OK regex: \d parsed_regex: \d str: - result_expr: - expected_results - +11_n: OK regex: \D parsed_regex: \D str: 1 result_expr: - expected_results - +12_y: OK regex: \D parsed_regex: \D str: - result_expr: - expected_results - +13_y: OK regex: [\w] parsed_regex: [\w] str: a result_expr: - expected_results - +14_n: OK regex: [\w] parsed_regex: [\w] str: - result_expr: - expected_results - +15_n: OK regex: [\W] parsed_regex: [\W] str: a result_expr: - expected_results - +16_y: OK regex: [\W] parsed_regex: [\W] str: - result_expr: - expected_results - +17_y: OK regex: a[\s]b parsed_regex: a[\s]b str: a b result_expr: - expected_results - +18_n: OK regex: a[\s]b parsed_regex: a[\s]b str: a-b result_expr: - expected_results - +19_n: OK regex: a[\S]b parsed_regex: a[\S]b str: a b result_expr: - expected_results - +20_y: OK regex: a[\S]b parsed_regex: a[\S]b str: a-b result_expr: - expected_results - +21_y: OK regex: [\d] parsed_regex: [\d] str: 1 result_expr: - expected_results - +22_n: OK regex: [\d] parsed_regex: [\d] str: - result_expr: - expected_results - +23_n: OK regex: [\D] parsed_regex: [\D] str: 1 result_expr: - expected_results - +24_y: OK regex: [\D] parsed_regex: [\D] str: - result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_07_short_classes.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_07_short_classes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_08_alternatives.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_08_alternatives.cpp.execution new file mode 100644 index 000000000..c12fd2afe --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_08_alternatives.cpp.execution @@ -0,0 +1,4 @@ +Running tests_08_alternatives: +01_y: OK regex: ab|cd parsed_regex: ab|cd str: abc result_expr: $& expected_results ab +02_y: OK regex: ab|cd parsed_regex: ab|cd str: abcd result_expr: $& expected_results ab + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_08_alternatives.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_08_alternatives.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_09_groups.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_09_groups.cpp.execution new file mode 100644 index 000000000..05df860f9 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_09_groups.cpp.execution @@ -0,0 +1,13 @@ +Running tests_09_groups: +01_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $&-$1 expected_results ef- +02_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[0] expected_results 1 +03_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[0] expected_results 3 +04_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $-[1] expected_results 1 +05_y: OK regex: ()ef parsed_regex: ()ef str: def result_expr: $+[1] expected_results 1 +06_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $&-$1-$2 expected_results a-a-a +07_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-0 +08_y: OK regex: ((a)) parsed_regex: ((a)) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 1-1-1 +09_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $&-$1-$2 expected_results abc-a-c +10_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $-[0]-$-[1]-$-[2] expected_results 0-0-2 +11_y: OK regex: (a)b(c) parsed_regex: (a)b(c) str: abc result_expr: $+[0]-$+[1]-$+[2] expected_results 3-1-3 + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_09_groups.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_09_groups.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_10_escapes.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_10_escapes.cpp.execution new file mode 100644 index 000000000..fe6e6efc9 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_10_escapes.cpp.execution @@ -0,0 +1,39 @@ +Running tests_10_escapes: +01_y: OK regex: a\(b parsed_regex: a\(b str: a(b result_expr: $&-$1 expected_results a(b- +02_y: OK regex: a\(*b parsed_regex: a\(*b str: ab result_expr: $& expected_results ab +03_y: OK regex: a\(*b parsed_regex: a\(*b str: a((b result_expr: $& expected_results a((b +04_y: OK regex: a\\b parsed_regex: a\\b str: a\b result_expr: $& expected_results a\b +05_y: OK regex: foo(\h+)bar parsed_regex: foo(\h+)bar str: foo bar result_expr: $1 expected_results +06_y: OK regex: (\H+)(\h) parsed_regex: (\H+)(\h) str: foo bar result_expr: $1-$2 expected_results foo- +07_y: OK regex: (\h+)(\H) parsed_regex: (\h+)(\H) str: foo bar result_expr: $1-$2 expected_results -b +08_y: OK regex: foo(\h)bar parsed_regex: foo(\h)bar str: foo bar result_expr: $1 expected_results +09_y: OK regex: (\H)(\h) parsed_regex: (\H)(\h) str: foo bar result_expr: $1-$2 expected_results o- +10_y: OK regex: (\h)(\H) parsed_regex: (\h)(\H) str: foo bar result_expr: $1-$2 expected_results -b +11_y: OK regex: foo(\v+)bar parsed_regex: foo(\v+)bar str: foo + + +bar result_expr: $1 expected_results + + + +12_y: OK regex: (\V+)(\v) parsed_regex: (\V+)(\v) str: foo + + +bar result_expr: $1-$2 expected_results foo- +13_y: OK regex: (\v+)(\V) parsed_regex: (\v+)(\V) str: foo + + +bar result_expr: $1-$2 expected_results + + +-b +14_y: OK regex: foo(\v)bar parsed_regex: foo(\v)bar str: foo bar result_expr: $1 expected_results +15_y: OK regex: (\V)(\v) parsed_regex: (\V)(\v) str: foo bar result_expr: $1-$2 expected_results o- +16_y: OK regex: (\v)(\V) parsed_regex: (\v)(\V) str: foo bar result_expr: $1-$2 expected_results -b +17_y: OK regex: foo\t\n\r\f\a\ebar parsed_regex: foo\t\n\r\f\a\ebar str: foo + bar result_expr: $& expected_results foo + bar +18_y: OK regex: foo\Kbar parsed_regex: foo\Kbar str: foobar result_expr: $& expected_results bar +19_y: OK regex: \x41\x42 parsed_regex: \x41\x42 str: AB result_expr: $& expected_results AB +20_y: OK regex: \101\o{102} parsed_regex: \101\o{102} str: AB result_expr: $& expected_results AB + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_10_escapes.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_10_escapes.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_11_group_references.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_11_group_references.cpp.execution new file mode 100644 index 000000000..724d0085a --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_11_group_references.cpp.execution @@ -0,0 +1,26 @@ +Running tests_11_group_references: +01_y: OK regex: (foo)(\g-2) parsed_regex: (foo)(\g-2) str: foofoo result_expr: $1-$2 expected_results foo-foo +02_y: OK regex: (foo)(\g-2)(foo)(\g-2) parsed_regex: (foo)(\g-2)(foo)(\g-2) str: foofoofoofoo result_expr: $1-$2-$3-$4 expected_results foo-foo-foo-foo +03_y: OK regex: (([abc]+) \g-1)(([abc]+) \g{-1}) parsed_regex: (([abc]+) \g-1)(([abc]+) \g{-1}) str: abc abccba cba result_expr: $2-$4 expected_results abc-cba +04_y: OK regex: (a)(b)(c)\g1\g2\g3 parsed_regex: (a)(b)(c)\g1\g2\g3 str: abcabc result_expr: $1$2$3 expected_results abc +05_y: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +06_y: OK regex: /(?'n'foo) \g{ n }/ parsed_regex: /(?'n'foo) \g{ n }/ str: ..foo foo.. result_expr: $1 expected_results foo +07_yM: OK regex: /(?'n'foo) \g{n}/ parsed_regex: /(?'n'foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +08_y: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $1 expected_results foo +09_yM: OK regex: /(?<n>foo) \g{n}/ parsed_regex: /(?<n>foo) \g{n}/ str: ..foo foo.. result_expr: $+{n} expected_results foo +10_y: OK regex: /(?<as>as) (\w+) \g{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \g{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +11_y: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $1 expected_results foo +12_yM: OK regex: /(?'n'foo) \k<n>/ parsed_regex: /(?'n'foo) \k<n>/ str: ..foo foo.. result_expr: $+{n} expected_results foo +13_y: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $1 expected_results foo +14_yM: OK regex: /(?<n>foo) \k'n'/ parsed_regex: /(?<n>foo) \k'n'/ str: ..foo foo.. result_expr: $+{n} expected_results foo +15_yM: OK regex: /(?'a1'foo) \k'a1'/ parsed_regex: /(?'a1'foo) \k'a1'/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +16_yM: OK regex: /(?<a1>foo) \k<a1>/ parsed_regex: /(?<a1>foo) \k<a1>/ str: ..foo foo.. result_expr: $+{a1} expected_results foo +17_yM: OK regex: /(?'_'foo) \k'_'/ parsed_regex: /(?'_'foo) \k'_'/ str: ..foo foo.. result_expr: $+{_} expected_results foo +18_yM: OK regex: /(?<_>foo) \k<_>/ parsed_regex: /(?<_>foo) \k<_>/ str: ..foo foo.. result_expr: $+{_} expected_results foo +19_yM: OK regex: /(?'_0_'foo) \k'_0_'/ parsed_regex: /(?'_0_'foo) \k'_0_'/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +20_yM: OK regex: /(?<_0_>foo) \k<_0_>/ parsed_regex: /(?<_0_>foo) \k<_0_>/ str: ..foo foo.. result_expr: $+{_0_} expected_results foo +21_y: OK regex: /(?<as>as) (\w+) \k<as> (\w+)/ parsed_regex: /(?<as>as) (\w+) \k<as> (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +22_y: OK regex: /(?<as>as) (\w+) \k{as} (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{as} (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +23_y: OK regex: /(?<as>as) (\w+) \k'as' (\w+)/ parsed_regex: /(?<as>as) (\w+) \k'as' (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie +24_y: OK regex: /(?<as>as) (\w+) \k{ as } (\w+)/ parsed_regex: /(?<as>as) (\w+) \k{ as } (\w+)/ str: as easy as pie result_expr: $1-$2-$3 expected_results as-easy-pie + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_11_group_references.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_11_group_references.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_12_case_insensitive.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_12_case_insensitive.cpp.execution new file mode 100644 index 000000000..4939deb24 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_12_case_insensitive.cpp.execution @@ -0,0 +1,121 @@ +Running tests_12_case_insensitive: +01_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABC result_expr: $& expected_results ABC +02_n: OK regex: 'abc'i parsed_regex: 'abc'i str: XBC result_expr: - expected_results - +03_n: OK regex: 'abc'i parsed_regex: 'abc'i str: AXC result_expr: - expected_results - +04_n: OK regex: 'abc'i parsed_regex: 'abc'i str: ABX result_expr: - expected_results - +05_y: OK regex: 'abc'i parsed_regex: 'abc'i str: XABCY result_expr: $& expected_results ABC +06_y: OK regex: 'abc'i parsed_regex: 'abc'i str: ABABC result_expr: $& expected_results ABC +07_y: OK regex: 'ab*c'i parsed_regex: 'ab*c'i str: ABC result_expr: $& expected_results ABC +08_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABC result_expr: $& expected_results ABC +09_y: OK regex: 'ab*bc'i parsed_regex: 'ab*bc'i str: ABBC result_expr: $& expected_results ABBC +10_y: OK regex: 'ab*?bc'i parsed_regex: 'ab*?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +11_y: OK regex: 'ab{0,}?bc'i parsed_regex: 'ab{0,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +12_y: OK regex: 'ab+?bc'i parsed_regex: 'ab+?bc'i str: ABBC result_expr: $& expected_results ABBC +13_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABC result_expr: - expected_results - +14_n: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABQ result_expr: - expected_results - +15_n: OK regex: 'ab{1,}bc'i parsed_regex: 'ab{1,}bc'i str: ABQ result_expr: - expected_results - +16_y: OK regex: 'ab+bc'i parsed_regex: 'ab+bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +17_y: OK regex: 'ab{1,}?bc'i parsed_regex: 'ab{1,}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +18_y: OK regex: 'ab{1,3}?bc'i parsed_regex: 'ab{1,3}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +19_y: OK regex: 'ab{3,4}?bc'i parsed_regex: 'ab{3,4}?bc'i str: ABBBBC result_expr: $& expected_results ABBBBC +20_n: OK regex: 'ab{4,5}?bc'i parsed_regex: 'ab{4,5}?bc'i str: ABBBBC result_expr: - expected_results - +21_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBC result_expr: $& expected_results ABBC +22_y: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABC result_expr: $& expected_results ABC +23_y: OK regex: 'ab{0,1}?bc'i parsed_regex: 'ab{0,1}?bc'i str: ABC result_expr: $& expected_results ABC +24_n: OK regex: 'ab??bc'i parsed_regex: 'ab??bc'i str: ABBBBC result_expr: - expected_results - +25_y: OK regex: 'ab??c'i parsed_regex: 'ab??c'i str: ABC result_expr: $& expected_results ABC +26_y: OK regex: 'ab{0,1}?c'i parsed_regex: 'ab{0,1}?c'i str: ABC result_expr: $& expected_results ABC +27_y: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABC result_expr: $& expected_results ABC +28_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: ABCC result_expr: - expected_results - +29_y: OK regex: '^abc'i parsed_regex: '^abc'i str: ABCC result_expr: $& expected_results ABC +30_n: OK regex: '^abc$'i parsed_regex: '^abc$'i str: AABC result_expr: - expected_results - +31_y: OK regex: 'abc$'i parsed_regex: 'abc$'i str: AABC result_expr: $& expected_results ABC +32_y: OK regex: '^'i parsed_regex: '^'i str: ABC result_expr: $& expected_results +33_y: OK regex: '$'i parsed_regex: '$'i str: ABC result_expr: $& expected_results +34_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: ABC result_expr: $& expected_results ABC +35_y: OK regex: 'a.c'i parsed_regex: 'a.c'i str: AXC result_expr: $& expected_results AXC +36_y: OK regex: 'a\Nc'i parsed_regex: 'a\Nc'i str: ABC result_expr: $& expected_results ABC +37_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: AXYZC result_expr: $& expected_results AXYZC +38_n: OK regex: 'a.*c'i parsed_regex: 'a.*c'i str: AXYZD result_expr: - expected_results - +39_n: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABC result_expr: - expected_results - +40_y: OK regex: 'a[bc]d'i parsed_regex: 'a[bc]d'i str: ABD result_expr: $& expected_results ABD +41_n: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ABD result_expr: - expected_results - +42_y: OK regex: 'a[b-d]e'i parsed_regex: 'a[b-d]e'i str: ACE result_expr: $& expected_results ACE +43_y: OK regex: 'a[b-d]'i parsed_regex: 'a[b-d]'i str: AAC result_expr: $& expected_results AC +44_y: OK regex: 'a[-b]'i parsed_regex: 'a[-b]'i str: A- result_expr: $& expected_results A- +45_y: OK regex: 'a[b-]'i parsed_regex: 'a[b-]'i str: A- result_expr: $& expected_results A- +46_y: OK regex: 'a]'i parsed_regex: 'a]'i str: A] result_expr: $& expected_results A] +47_y: OK regex: 'a[]]b'i parsed_regex: 'a[]]b'i str: A]B result_expr: $& expected_results A]B +48_y: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: AED result_expr: $& expected_results AED +49_n: OK regex: 'a[^bc]d'i parsed_regex: 'a[^bc]d'i str: ABD result_expr: - expected_results - +50_y: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: ADC result_expr: $& expected_results ADC +51_n: OK regex: 'a[^-b]c'i parsed_regex: 'a[^-b]c'i str: A-C result_expr: - expected_results - +52_n: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: A]C result_expr: - expected_results - +53_y: OK regex: 'a[^]b]c'i parsed_regex: 'a[^]b]c'i str: ADC result_expr: $& expected_results ADC +54_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABC result_expr: $& expected_results AB +55_y: OK regex: 'ab|cd'i parsed_regex: 'ab|cd'i str: ABCD result_expr: $& expected_results AB +56_y: OK regex: '()ef'i parsed_regex: '()ef'i str: DEF result_expr: $&-$1 expected_results EF- +57_n: OK regex: '$b'i parsed_regex: '$b'i str: B result_expr: - expected_results - +58_y: OK regex: 'a\(b'i parsed_regex: 'a\(b'i str: A(B result_expr: $&-$1 expected_results A(B- +59_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: AB result_expr: $& expected_results AB +60_y: OK regex: 'a\(*b'i parsed_regex: 'a\(*b'i str: A((B result_expr: $& expected_results A((B +61_y: OK regex: 'a\\b'i parsed_regex: 'a\\b'i str: A\B result_expr: $& expected_results A\B +62_y: OK regex: '((a))'i parsed_regex: '((a))'i str: ABC result_expr: $&-$1-$2 expected_results A-A-A +63_y: OK regex: '(a)b(c)'i parsed_regex: '(a)b(c)'i str: ABC result_expr: $&-$1-$2 expected_results ABC-A-C +64_y: OK regex: 'a+b+c'i parsed_regex: 'a+b+c'i str: AABBABC result_expr: $& expected_results ABC +65_y: OK regex: 'a{1,}b{1,}c'i parsed_regex: 'a{1,}b{1,}c'i str: AABBABC result_expr: $& expected_results ABC +66_y: OK regex: 'a.+?c'i parsed_regex: 'a.+?c'i str: ABCABC result_expr: $& expected_results ABC +67_y: OK regex: 'a.*?c'i parsed_regex: 'a.*?c'i str: ABCABC result_expr: $& expected_results ABC +68_y: OK regex: 'a.{0,5}?c'i parsed_regex: 'a.{0,5}?c'i str: ABCABC result_expr: $& expected_results ABC +69_y: OK regex: '(a+|b)*'i parsed_regex: '(a+|b)*'i str: AB result_expr: $&-$1 expected_results AB-B +70_y: OK regex: '(a+|b){0,}'i parsed_regex: '(a+|b){0,}'i str: AB result_expr: $&-$1 expected_results AB-B +71_y: OK regex: '(a+|b)+'i parsed_regex: '(a+|b)+'i str: AB result_expr: $&-$1 expected_results AB-B +72_y: OK regex: '(a+|b){1,}'i parsed_regex: '(a+|b){1,}'i str: AB result_expr: $&-$1 expected_results AB-B +73_y: OK regex: '(a+|b)?'i parsed_regex: '(a+|b)?'i str: AB result_expr: $&-$1 expected_results A-A +74_y: OK regex: '(a+|b){0,1}'i parsed_regex: '(a+|b){0,1}'i str: AB result_expr: $&-$1 expected_results A-A +75_y: OK regex: '(a+|b){0,1}?'i parsed_regex: '(a+|b){0,1}?'i str: AB result_expr: $&-$1 expected_results - +76_y: OK regex: '[^ab]*'i parsed_regex: '[^ab]*'i str: CDE result_expr: $& expected_results CDE +77_n: OK regex: 'abc'i parsed_regex: 'abc'i str: result_expr: - expected_results - +78_y: OK regex: 'a*'i parsed_regex: 'a*'i str: result_expr: $& expected_results +79_y: OK regex: '([abc])*d'i parsed_regex: '([abc])*d'i str: ABBBCD result_expr: $&-$1 expected_results ABBBCD-C +80_y: OK regex: '([abc])*bcd'i parsed_regex: '([abc])*bcd'i str: ABCD result_expr: $&-$1 expected_results ABCD-A +81_y: OK regex: 'a|b|c|d|e'i parsed_regex: 'a|b|c|d|e'i str: E result_expr: $& expected_results E +82_y: OK regex: '(a|b|c|d|e)f'i parsed_regex: '(a|b|c|d|e)f'i str: EF result_expr: $&-$1 expected_results EF-E +83_y: OK regex: 'abcd*efg'i parsed_regex: 'abcd*efg'i str: ABCDEFG result_expr: $& expected_results ABCDEFG +84_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XABYABBBZ result_expr: $& expected_results AB +85_y: OK regex: 'ab*'i parsed_regex: 'ab*'i str: XAYABBBZ result_expr: $& expected_results A +86_y: OK regex: '(ab|cd)e'i parsed_regex: '(ab|cd)e'i str: ABCDE result_expr: $&-$1 expected_results CDE-CD +87_y: OK regex: '[abhgefdc]ij'i parsed_regex: '[abhgefdc]ij'i str: HIJ result_expr: $& expected_results HIJ +88_n: OK regex: '^(ab|cd)e'i parsed_regex: '^(ab|cd)e'i str: ABCDE result_expr: x$1y expected_results XY +89_y: OK regex: '(abc|)ef'i parsed_regex: '(abc|)ef'i str: ABCDEF result_expr: $&-$1 expected_results EF- +90_y: OK regex: '(a|b)c*d'i parsed_regex: '(a|b)c*d'i str: ABCD result_expr: $&-$1 expected_results BCD-B +91_y: OK regex: '(ab|ab*)bc'i parsed_regex: '(ab|ab*)bc'i str: ABC result_expr: $&-$1 expected_results ABC-A +92_y: OK regex: 'a([bc]*)c*'i parsed_regex: 'a([bc]*)c*'i str: ABC result_expr: $&-$1 expected_results ABC-BC +93_y: OK regex: 'a([bc]*)(c*d)'i parsed_regex: 'a([bc]*)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +94_y: OK regex: 'a([bc]+)(c*d)'i parsed_regex: 'a([bc]+)(c*d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-BC-D +95_y: OK regex: 'a([bc]*)(c+d)'i parsed_regex: 'a([bc]*)(c+d)'i str: ABCD result_expr: $&-$1-$2 expected_results ABCD-B-CD +96_y: OK regex: 'a[bcd]*dcdcde'i parsed_regex: 'a[bcd]*dcdcde'i str: ADCDCDE result_expr: $& expected_results ADCDCDE +97_n: OK regex: 'a[bcd]+dcdcde'i parsed_regex: 'a[bcd]+dcdcde'i str: ADCDCDE result_expr: - expected_results - +98_y: OK regex: '(ab|a)b*c'i parsed_regex: '(ab|a)b*c'i str: ABC result_expr: $&-$1 expected_results ABC-AB +99_y: OK regex: '((a)(b)c)(d)'i parsed_regex: '((a)(b)c)(d)'i str: ABCD result_expr: $1-$2-$3-$4 expected_results ABC-A-B-D +100_y: OK regex: '[a-zA-Z_][a-zA-Z0-9_]*'i parsed_regex: '[a-zA-Z_][a-zA-Z0-9_]*'i str: ALPHA result_expr: $& expected_results ALPHA +101_y: OK regex: '^a(bc+|b[eh])g|.h$'i parsed_regex: '^a(bc+|b[eh])g|.h$'i str: ABH result_expr: $&-$1 expected_results BH- +102_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +103_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: IJ result_expr: $&-$1-$2 expected_results IJ-IJ-J +104_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: EFFG result_expr: - expected_results - +105_n: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: BCDD result_expr: - expected_results - +106_y: OK regex: '(bc+d$|ef*g.|h?i(j|k))'i parsed_regex: '(bc+d$|ef*g.|h?i(j|k))'i str: REFFGZ result_expr: $&-$1-$2 expected_results EFFGZ-EFFGZ- +107_y: OK regex: '((((((((((a))))))))))'i parsed_regex: '((((((((((a))))))))))'i str: A result_expr: $10 expected_results A +108_y: OK regex: '((((((((((a))))))))))\10'i parsed_regex: '((((((((((a))))))))))\10'i str: AA result_expr: $& expected_results AA +109_y: OK regex: '(((((((((a)))))))))'i parsed_regex: '(((((((((a)))))))))'i str: A result_expr: $& expected_results A +110_n: OK regex: 'multiple words of text'i parsed_regex: 'multiple words of text'i str: UH-UH result_expr: - expected_results - +111_y: OK regex: 'multiple words'i parsed_regex: 'multiple words'i str: MULTIPLE WORDS, YEAH result_expr: $& expected_results MULTIPLE WORDS +112_y: OK regex: '(.*)c(.*)'i parsed_regex: '(.*)c(.*)'i str: ABCDE result_expr: $&-$1-$2 expected_results ABCDE-AB-DE +113_y: OK regex: '\((.*), (.*)\)'i parsed_regex: '\((.*), (.*)\)'i str: (A, B) result_expr: ($2, $1) expected_results (B, A) +114_n: OK regex: '[k]'i parsed_regex: '[k]'i str: AB result_expr: - expected_results - +115_y: OK regex: 'abcd'i parsed_regex: 'abcd'i str: ABCD result_expr: $& expected_results ABCD +116_y: OK regex: 'a(bc)d'i parsed_regex: 'a(bc)d'i str: ABCD result_expr: $1 expected_results BC +117_y: OK regex: 'a[-]?c'i parsed_regex: 'a[-]?c'i str: AC result_expr: $& expected_results AC +118_y: OK regex: '(abc)\1'i parsed_regex: '(abc)\1'i str: ABCABC result_expr: $1 expected_results ABC +119_y: OK regex: '([a-c]*)\1'i parsed_regex: '([a-c]*)\1'i str: ABCABC result_expr: $1 expected_results ABC + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_12_case_insensitive.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_12_case_insensitive.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_13_posessive_modifier.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_13_posessive_modifier.cpp.execution new file mode 100644 index 000000000..916d1a084 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_13_posessive_modifier.cpp.execution @@ -0,0 +1,50 @@ +Running tests_13_posessive_modifier: +01_n: OK regex: a++a parsed_regex: a++a str: aaaaa result_expr: - expected_results - +02_n: OK regex: a*+a parsed_regex: a*+a str: aaaaa result_expr: - expected_results - +03_n: OK regex: a{1,5}+a parsed_regex: a{1,5}+a str: aaaaa result_expr: - expected_results - +04_n: OK regex: a?+a parsed_regex: a?+a str: ab result_expr: - expected_results - +05_y: OK regex: a++b parsed_regex: a++b str: aaaaab result_expr: $& expected_results aaaaab +06_y: OK regex: a*+b parsed_regex: a*+b str: aaaaab result_expr: $& expected_results aaaaab +07_y: OK regex: a{1,5}+b parsed_regex: a{1,5}+b str: aaaaab result_expr: $& expected_results aaaaab +08_y: OK regex: a?+b parsed_regex: a?+b str: ab result_expr: $& expected_results ab +09_n: OK regex: fooa++a parsed_regex: fooa++a str: fooaaaaa result_expr: - expected_results - +10_n: OK regex: fooa*+a parsed_regex: fooa*+a str: fooaaaaa result_expr: - expected_results - +11_n: OK regex: fooa{1,5}+a parsed_regex: fooa{1,5}+a str: fooaaaaa result_expr: - expected_results - +12_n: OK regex: fooa?+a parsed_regex: fooa?+a str: fooab result_expr: - expected_results - +13_y: OK regex: fooa++b parsed_regex: fooa++b str: fooaaaaab result_expr: $& expected_results fooaaaaab +14_y: OK regex: fooa*+b parsed_regex: fooa*+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +15_y: OK regex: fooa{1,5}+b parsed_regex: fooa{1,5}+b str: fooaaaaab result_expr: $& expected_results fooaaaaab +16_y: OK regex: fooa?+b parsed_regex: fooa?+b str: fooab result_expr: $& expected_results fooab +17_n: OK regex: (aA)++(aA) parsed_regex: (aA)++(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +18_n: OK regex: (aA|bB)++(aA|bB) parsed_regex: (aA|bB)++(aA|bB) str: aAaAbBaAbB result_expr: - expected_results aAaAbBaAbB +19_n: OK regex: (aA)*+(aA) parsed_regex: (aA)*+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +20_n: OK regex: (aA|bB)*+(aA|bB) parsed_regex: (aA|bB)*+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +21_n: OK regex: (aA){1,5}+(aA) parsed_regex: (aA){1,5}+(aA) str: aAaAaAaAaA result_expr: - expected_results aAaAaAaAaA +22_n: OK regex: (aA|bB){1,5}+(aA|bB) parsed_regex: (aA|bB){1,5}+(aA|bB) str: aAaAbBaAaA result_expr: - expected_results aAaAbBaAaA +23_n: OK regex: (aA)?+(aA) parsed_regex: (aA)?+(aA) str: aAb result_expr: - expected_results aAb +24_n: OK regex: (aA|bB)?+(aA|bB) parsed_regex: (aA|bB)?+(aA|bB) str: bBb result_expr: - expected_results bBb +25_y: OK regex: (aA)++b parsed_regex: (aA)++b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +26_y: OK regex: (aA|bB)++b parsed_regex: (aA|bB)++b str: aAbBaAaAbBb result_expr: $& expected_results aAbBaAaAbBb +27_y: OK regex: (aA)*+b parsed_regex: (aA)*+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +28_y: OK regex: (aA|bB)*+b parsed_regex: (aA|bB)*+b str: bBbBbBbBbBb result_expr: $& expected_results bBbBbBbBbBb +29_y: OK regex: (aA){1,5}+b parsed_regex: (aA){1,5}+b str: aAaAaAaAaAb result_expr: $& expected_results aAaAaAaAaAb +30_y: OK regex: (aA|bB){1,5}+b parsed_regex: (aA|bB){1,5}+b str: bBaAbBaAbBb result_expr: $& expected_results bBaAbBaAbBb +31_y: OK regex: (aA)?+b parsed_regex: (aA)?+b str: aAb result_expr: $& expected_results aAb +32_y: OK regex: (aA|bB)?+b parsed_regex: (aA|bB)?+b str: bBb result_expr: $& expected_results bBb +33_n: OK regex: foo(aA)++(aA) parsed_regex: foo(aA)++(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +34_n: OK regex: foo(aA|bB)++(aA|bB) parsed_regex: foo(aA|bB)++(aA|bB) str: foobBbBbBaAaA result_expr: - expected_results foobBbBbBaAaA +35_n: OK regex: foo(aA)*+(aA) parsed_regex: foo(aA)*+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +36_n: OK regex: foo(aA|bB)*+(aA|bB) parsed_regex: foo(aA|bB)*+(aA|bB) str: foobBaAbBaAaA result_expr: - expected_results foobBaAbBaAaA +37_n: OK regex: foo(aA){1,5}+(aA) parsed_regex: foo(aA){1,5}+(aA) str: fooaAaAaAaAaA result_expr: - expected_results fooaAaAaAaAaA +38_n: OK regex: foo(aA|bB){1,5}+(aA|bB) parsed_regex: foo(aA|bB){1,5}+(aA|bB) str: fooaAbBbBaAaA result_expr: - expected_results fooaAbBbBaAaA +39_n: OK regex: foo(aA)?+(aA) parsed_regex: foo(aA)?+(aA) str: fooaAb result_expr: - expected_results fooaAb +40_n: OK regex: foo(aA|bB)?+(aA|bB) parsed_regex: foo(aA|bB)?+(aA|bB) str: foobBb result_expr: - expected_results foobBb +41_y: OK regex: foo(aA)++b parsed_regex: foo(aA)++b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +42_y: OK regex: foo(aA|bB)++b parsed_regex: foo(aA|bB)++b str: foobBaAbBaAbBb result_expr: $& expected_results foobBaAbBaAbBb +43_y: OK regex: foo(aA)*+b parsed_regex: foo(aA)*+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +44_y: OK regex: foo(aA|bB)*+b parsed_regex: foo(aA|bB)*+b str: foobBbBaAaAaAb result_expr: $& expected_results foobBbBaAaAaAb +45_y: OK regex: foo(aA){1,5}+b parsed_regex: foo(aA){1,5}+b str: fooaAaAaAaAaAb result_expr: $& expected_results fooaAaAaAaAaAb +46_y: OK regex: foo(aA|bB){1,5}+b parsed_regex: foo(aA|bB){1,5}+b str: foobBaAaAaAaAb result_expr: $& expected_results foobBaAaAaAaAb +47_y: OK regex: foo(aA)?+b parsed_regex: foo(aA)?+b str: fooaAb result_expr: $& expected_results fooaAb +48_y: OK regex: foo(aA|bB)?+b parsed_regex: foo(aA|bB)?+b str: foobBb result_expr: $& expected_results foobBb + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_13_posessive_modifier.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_13_posessive_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_14_multiline_modifier.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_14_multiline_modifier.cpp.execution new file mode 100644 index 000000000..9a12081ac --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_14_multiline_modifier.cpp.execution @@ -0,0 +1,533 @@ +Running tests_14_multiline_modifier: +01_y: OK regex: \Z parsed_regex: \Z str: a +b + result_expr: $-[0] expected_results 3 +02_y: OK regex: \z parsed_regex: \z str: a +b + result_expr: $-[0] expected_results 4 +03_y: OK regex: $ parsed_regex: $ str: a +b + result_expr: $-[0] expected_results 3 +04_y: OK regex: \Z parsed_regex: \Z str: b +a + result_expr: $-[0] expected_results 3 +05_y: OK regex: \z parsed_regex: \z str: b +a + result_expr: $-[0] expected_results 4 +06_y: OK regex: $ parsed_regex: $ str: b +a + result_expr: $-[0] expected_results 3 +07_y: OK regex: \Z parsed_regex: \Z str: b +a result_expr: $-[0] expected_results 3 +08_y: OK regex: \z parsed_regex: \z str: b +a result_expr: $-[0] expected_results 3 +09_y: OK regex: $ parsed_regex: $ str: b +a result_expr: $-[0] expected_results 3 +10_y: OK regex: '\Z'm parsed_regex: '\Z'm str: a +b + result_expr: $-[0] expected_results 3 +11_y: OK regex: '\z'm parsed_regex: '\z'm str: a +b + result_expr: $-[0] expected_results 4 +12_y: OK regex: '$'m parsed_regex: '$'m str: a +b + result_expr: $-[0] expected_results 1 +13_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a + result_expr: $-[0] expected_results 3 +14_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a + result_expr: $-[0] expected_results 4 +15_y: OK regex: '$'m parsed_regex: '$'m str: b +a + result_expr: $-[0] expected_results 1 +16_y: OK regex: '\Z'm parsed_regex: '\Z'm str: b +a result_expr: $-[0] expected_results 3 +17_y: OK regex: '\z'm parsed_regex: '\z'm str: b +a result_expr: $-[0] expected_results 3 +18_y: OK regex: '$'m parsed_regex: '$'m str: b +a result_expr: $-[0] expected_results 1 +19_n: OK regex: a\Z parsed_regex: a\Z str: a +b + result_expr: - expected_results - +20_n: OK regex: a\z parsed_regex: a\z str: a +b + result_expr: - expected_results - +21_n: OK regex: a$ parsed_regex: a$ str: a +b + result_expr: - expected_results - +22_y: OK regex: a\Z parsed_regex: a\Z str: b +a + result_expr: $-[0] expected_results 2 +23_n: OK regex: a\z parsed_regex: a\z str: b +a + result_expr: - expected_results - +24_y: OK regex: a$ parsed_regex: a$ str: b +a + result_expr: $-[0] expected_results 2 +25_y: OK regex: a\Z parsed_regex: a\Z str: b +a result_expr: $-[0] expected_results 2 +26_y: OK regex: a\z parsed_regex: a\z str: b +a result_expr: $-[0] expected_results 2 +27_y: OK regex: a$ parsed_regex: a$ str: b +a result_expr: $-[0] expected_results 2 +28_n: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: a +b + result_expr: - expected_results - +29_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: a +b + result_expr: - expected_results - +30_y: OK regex: 'a$'m parsed_regex: 'a$'m str: a +b + result_expr: $-[0] expected_results 0 +31_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a + result_expr: $-[0] expected_results 2 +32_n: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a + result_expr: - expected_results - +33_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a + result_expr: $-[0] expected_results 2 +34_y: OK regex: 'a\Z'm parsed_regex: 'a\Z'm str: b +a result_expr: $-[0] expected_results 2 +35_y: OK regex: 'a\z'm parsed_regex: 'a\z'm str: b +a result_expr: $-[0] expected_results 2 +36_y: OK regex: 'a$'m parsed_regex: 'a$'m str: b +a result_expr: $-[0] expected_results 2 +37_n: OK regex: aa\Z parsed_regex: aa\Z str: aa +b + result_expr: - expected_results - +38_n: OK regex: aa\z parsed_regex: aa\z str: aa +b + result_expr: - expected_results - +39_n: OK regex: aa$ parsed_regex: aa$ str: aa +b + result_expr: - expected_results - +40_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa + result_expr: $-[0] expected_results 2 +41_n: OK regex: aa\z parsed_regex: aa\z str: b +aa + result_expr: - expected_results - +42_y: OK regex: aa$ parsed_regex: aa$ str: b +aa + result_expr: $-[0] expected_results 2 +43_y: OK regex: aa\Z parsed_regex: aa\Z str: b +aa result_expr: $-[0] expected_results 2 +44_y: OK regex: aa\z parsed_regex: aa\z str: b +aa result_expr: $-[0] expected_results 2 +45_y: OK regex: aa$ parsed_regex: aa$ str: b +aa result_expr: $-[0] expected_results 2 +46_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: aa +b + result_expr: - expected_results - +47_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: aa +b + result_expr: - expected_results - +48_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: aa +b + result_expr: $-[0] expected_results 0 +49_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa + result_expr: $-[0] expected_results 2 +50_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa + result_expr: - expected_results - +51_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa + result_expr: $-[0] expected_results 2 +52_y: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +aa result_expr: $-[0] expected_results 2 +53_y: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +aa result_expr: $-[0] expected_results 2 +54_y: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +aa result_expr: $-[0] expected_results 2 +55_n: OK regex: aa\Z parsed_regex: aa\Z str: ac +b + result_expr: - expected_results - +56_n: OK regex: aa\z parsed_regex: aa\z str: ac +b + result_expr: - expected_results - +57_n: OK regex: aa$ parsed_regex: aa$ str: ac +b + result_expr: - expected_results - +58_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac + result_expr: - expected_results - +59_n: OK regex: aa\z parsed_regex: aa\z str: b +ac + result_expr: - expected_results - +60_n: OK regex: aa$ parsed_regex: aa$ str: b +ac + result_expr: - expected_results - +61_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ac result_expr: - expected_results - +62_n: OK regex: aa\z parsed_regex: aa\z str: b +ac result_expr: - expected_results - +63_n: OK regex: aa$ parsed_regex: aa$ str: b +ac result_expr: - expected_results - +64_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ac +b + result_expr: - expected_results - +65_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ac +b + result_expr: - expected_results - +66_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ac +b + result_expr: - expected_results - +67_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac + result_expr: - expected_results - +68_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac + result_expr: - expected_results - +69_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac + result_expr: - expected_results - +70_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ac result_expr: - expected_results - +71_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ac result_expr: - expected_results - +72_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ac result_expr: - expected_results - +73_n: OK regex: aa\Z parsed_regex: aa\Z str: ca +b + result_expr: - expected_results - +74_n: OK regex: aa\z parsed_regex: aa\z str: ca +b + result_expr: - expected_results - +75_n: OK regex: aa$ parsed_regex: aa$ str: ca +b + result_expr: - expected_results - +76_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca + result_expr: - expected_results - +77_n: OK regex: aa\z parsed_regex: aa\z str: b +ca + result_expr: - expected_results - +78_n: OK regex: aa$ parsed_regex: aa$ str: b +ca + result_expr: - expected_results - +79_n: OK regex: aa\Z parsed_regex: aa\Z str: b +ca result_expr: - expected_results - +80_n: OK regex: aa\z parsed_regex: aa\z str: b +ca result_expr: - expected_results - +81_n: OK regex: aa$ parsed_regex: aa$ str: b +ca result_expr: - expected_results - +82_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: ca +b + result_expr: - expected_results - +83_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: ca +b + result_expr: - expected_results - +84_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: ca +b + result_expr: - expected_results - +85_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca + result_expr: - expected_results - +86_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca + result_expr: - expected_results - +87_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca + result_expr: - expected_results - +88_n: OK regex: 'aa\Z'm parsed_regex: 'aa\Z'm str: b +ca result_expr: - expected_results - +89_n: OK regex: 'aa\z'm parsed_regex: 'aa\z'm str: b +ca result_expr: - expected_results - +90_n: OK regex: 'aa$'m parsed_regex: 'aa$'m str: b +ca result_expr: - expected_results - +91_n: OK regex: ab\Z parsed_regex: ab\Z str: ab +b + result_expr: - expected_results - +92_n: OK regex: ab\z parsed_regex: ab\z str: ab +b + result_expr: - expected_results - +93_n: OK regex: ab$ parsed_regex: ab$ str: ab +b + result_expr: - expected_results - +94_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab + result_expr: $-[0] expected_results 2 +95_n: OK regex: ab\z parsed_regex: ab\z str: b +ab + result_expr: - expected_results - +96_y: OK regex: ab$ parsed_regex: ab$ str: b +ab + result_expr: $-[0] expected_results 2 +97_y: OK regex: ab\Z parsed_regex: ab\Z str: b +ab result_expr: $-[0] expected_results 2 +98_y: OK regex: ab\z parsed_regex: ab\z str: b +ab result_expr: $-[0] expected_results 2 +99_y: OK regex: ab$ parsed_regex: ab$ str: b +ab result_expr: $-[0] expected_results 2 +100_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ab +b + result_expr: - expected_results - +101_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ab +b + result_expr: - expected_results - +102_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ab +b + result_expr: $-[0] expected_results 0 +103_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab + result_expr: $-[0] expected_results 2 +104_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab + result_expr: - expected_results - +105_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab + result_expr: $-[0] expected_results 2 +106_y: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ab result_expr: $-[0] expected_results 2 +107_y: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ab result_expr: $-[0] expected_results 2 +108_y: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ab result_expr: $-[0] expected_results 2 +109_n: OK regex: ab\Z parsed_regex: ab\Z str: ac +b + result_expr: - expected_results - +110_n: OK regex: ab\z parsed_regex: ab\z str: ac +b + result_expr: - expected_results - +111_n: OK regex: ab$ parsed_regex: ab$ str: ac +b + result_expr: - expected_results - +112_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac + result_expr: - expected_results - +113_n: OK regex: ab\z parsed_regex: ab\z str: b +ac + result_expr: - expected_results - +114_n: OK regex: ab$ parsed_regex: ab$ str: b +ac + result_expr: - expected_results - +115_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ac result_expr: - expected_results - +116_n: OK regex: ab\z parsed_regex: ab\z str: b +ac result_expr: - expected_results - +117_n: OK regex: ab$ parsed_regex: ab$ str: b +ac result_expr: - expected_results - +118_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ac +b + result_expr: - expected_results - +119_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ac +b + result_expr: - expected_results - +120_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ac +b + result_expr: - expected_results - +121_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac + result_expr: - expected_results - +122_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac + result_expr: - expected_results - +123_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac + result_expr: - expected_results - +124_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ac result_expr: - expected_results - +125_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ac result_expr: - expected_results - +126_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ac result_expr: - expected_results - +127_n: OK regex: ab\Z parsed_regex: ab\Z str: ca +b + result_expr: - expected_results - +128_n: OK regex: ab\z parsed_regex: ab\z str: ca +b + result_expr: - expected_results - +129_n: OK regex: ab$ parsed_regex: ab$ str: ca +b + result_expr: - expected_results - +130_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca + result_expr: - expected_results - +131_n: OK regex: ab\z parsed_regex: ab\z str: b +ca + result_expr: - expected_results - +132_n: OK regex: ab$ parsed_regex: ab$ str: b +ca + result_expr: - expected_results - +133_n: OK regex: ab\Z parsed_regex: ab\Z str: b +ca result_expr: - expected_results - +134_n: OK regex: ab\z parsed_regex: ab\z str: b +ca result_expr: - expected_results - +135_n: OK regex: ab$ parsed_regex: ab$ str: b +ca result_expr: - expected_results - +136_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: ca +b + result_expr: - expected_results - +137_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: ca +b + result_expr: - expected_results - +138_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: ca +b + result_expr: - expected_results - +139_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca + result_expr: - expected_results - +140_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca + result_expr: - expected_results - +141_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca + result_expr: - expected_results - +142_n: OK regex: 'ab\Z'm parsed_regex: 'ab\Z'm str: b +ca result_expr: - expected_results - +143_n: OK regex: 'ab\z'm parsed_regex: 'ab\z'm str: b +ca result_expr: - expected_results - +144_n: OK regex: 'ab$'m parsed_regex: 'ab$'m str: b +ca result_expr: - expected_results - +145_n: OK regex: abb\Z parsed_regex: abb\Z str: abb +b + result_expr: - expected_results - +146_n: OK regex: abb\z parsed_regex: abb\z str: abb +b + result_expr: - expected_results - +147_n: OK regex: abb$ parsed_regex: abb$ str: abb +b + result_expr: - expected_results - +148_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb + result_expr: $-[0] expected_results 2 +149_n: OK regex: abb\z parsed_regex: abb\z str: b +abb + result_expr: - expected_results - +150_y: OK regex: abb$ parsed_regex: abb$ str: b +abb + result_expr: $-[0] expected_results 2 +151_y: OK regex: abb\Z parsed_regex: abb\Z str: b +abb result_expr: $-[0] expected_results 2 +152_y: OK regex: abb\z parsed_regex: abb\z str: b +abb result_expr: $-[0] expected_results 2 +153_y: OK regex: abb$ parsed_regex: abb$ str: b +abb result_expr: $-[0] expected_results 2 +154_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: abb +b + result_expr: - expected_results - +155_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: abb +b + result_expr: - expected_results - +156_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: abb +b + result_expr: $-[0] expected_results 0 +157_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb + result_expr: $-[0] expected_results 2 +158_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb + result_expr: - expected_results - +159_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb + result_expr: $-[0] expected_results 2 +160_y: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +abb result_expr: $-[0] expected_results 2 +161_y: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +abb result_expr: $-[0] expected_results 2 +162_y: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +abb result_expr: $-[0] expected_results 2 +163_n: OK regex: abb\Z parsed_regex: abb\Z str: ac +b + result_expr: - expected_results - +164_n: OK regex: abb\z parsed_regex: abb\z str: ac +b + result_expr: - expected_results - +165_n: OK regex: abb$ parsed_regex: abb$ str: ac +b + result_expr: - expected_results - +166_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac + result_expr: - expected_results - +167_n: OK regex: abb\z parsed_regex: abb\z str: b +ac + result_expr: - expected_results - +168_n: OK regex: abb$ parsed_regex: abb$ str: b +ac + result_expr: - expected_results - +169_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ac result_expr: - expected_results - +170_n: OK regex: abb\z parsed_regex: abb\z str: b +ac result_expr: - expected_results - +171_n: OK regex: abb$ parsed_regex: abb$ str: b +ac result_expr: - expected_results - +172_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ac +b + result_expr: - expected_results - +173_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ac +b + result_expr: - expected_results - +174_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ac +b + result_expr: - expected_results - +175_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac + result_expr: - expected_results - +176_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac + result_expr: - expected_results - +177_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac + result_expr: - expected_results - +178_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ac result_expr: - expected_results - +179_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ac result_expr: - expected_results - +180_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ac result_expr: - expected_results - +181_n: OK regex: abb\Z parsed_regex: abb\Z str: ca +b + result_expr: - expected_results - +182_n: OK regex: abb\z parsed_regex: abb\z str: ca +b + result_expr: - expected_results - +183_n: OK regex: abb$ parsed_regex: abb$ str: ca +b + result_expr: - expected_results - +184_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca + result_expr: - expected_results - +185_n: OK regex: abb\z parsed_regex: abb\z str: b +ca + result_expr: - expected_results - +186_n: OK regex: abb$ parsed_regex: abb$ str: b +ca + result_expr: - expected_results - +187_n: OK regex: abb\Z parsed_regex: abb\Z str: b +ca result_expr: - expected_results - +188_n: OK regex: abb\z parsed_regex: abb\z str: b +ca result_expr: - expected_results - +189_n: OK regex: abb$ parsed_regex: abb$ str: b +ca result_expr: - expected_results - +190_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: ca +b + result_expr: - expected_results - +191_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: ca +b + result_expr: - expected_results - +192_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: ca +b + result_expr: - expected_results - +193_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca + result_expr: - expected_results - +194_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca + result_expr: - expected_results - +195_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca + result_expr: - expected_results - +196_n: OK regex: 'abb\Z'm parsed_regex: 'abb\Z'm str: b +ca result_expr: - expected_results - +197_n: OK regex: 'abb\z'm parsed_regex: 'abb\z'm str: b +ca result_expr: - expected_results - +198_n: OK regex: 'abb$'m parsed_regex: 'abb$'m str: b +ca result_expr: - expected_results - +199_y: OK regex: '\Aa$'m parsed_regex: '\Aa$'m str: a + + result_expr: $& expected_results a + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_14_multiline_modifier.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_14_multiline_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_15_group_modifiers.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_15_group_modifiers.cpp.execution new file mode 100644 index 000000000..de92abc48 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_15_group_modifiers.cpp.execution @@ -0,0 +1,87 @@ +Running tests_15_group_modifiers: +01_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: ab result_expr: $& expected_results ab +02_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: ab result_expr: $&:$1 expected_results ab:a +03_y: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: Ab result_expr: $& expected_results Ab +04_y: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: Ab result_expr: $&:$1 expected_results Ab:A +05_n: OK regex: (?:(?i)a)b parsed_regex: (?:(?i)a)b str: aB result_expr: - expected_results - +06_n: OK regex: ((?i)a)b parsed_regex: ((?i)a)b str: aB result_expr: - expected_results - +07_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: ab result_expr: $& expected_results ab +08_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: ab result_expr: $&:$1 expected_results ab:a +09_y: OK regex: (?i:a)b parsed_regex: (?i:a)b str: Ab result_expr: $& expected_results Ab +10_y: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: Ab result_expr: $&:$1 expected_results Ab:A +11_n: OK regex: (?i:a)b parsed_regex: (?i:a)b str: aB result_expr: - expected_results - +12_n: OK regex: ((?i:a))b parsed_regex: ((?i:a))b str: aB result_expr: - expected_results - +13_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: ab result_expr: $& expected_results ab +14_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: ab result_expr: $&:$1 expected_results ab:a +15_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +16_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $&:$1 expected_results aB:a +17_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: Ab result_expr: - expected_results - +18_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: Ab result_expr: - expected_results - +19_y: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: aB result_expr: $& expected_results aB +20_y: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: aB result_expr: $1 expected_results a +21_n: OK regex: '(?:(?-i)a)b'i parsed_regex: '(?:(?-i)a)b'i str: AB result_expr: - expected_results - +22_n: OK regex: '((?-i)a)b'i parsed_regex: '((?-i)a)b'i str: AB result_expr: - expected_results - +23_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: ab result_expr: $& expected_results ab +24_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: ab result_expr: $&:$1 expected_results ab:a +25_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +26_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $&:$1 expected_results aB:a +27_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: Ab result_expr: - expected_results - +28_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: Ab result_expr: - expected_results - +29_y: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: aB result_expr: $& expected_results aB +30_y: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: aB result_expr: $1 expected_results a +31_n: OK regex: '(?-i:a)b'i parsed_regex: '(?-i:a)b'i str: AB result_expr: - expected_results - +32_n: OK regex: '((?-i:a))b'i parsed_regex: '((?-i:a))b'i str: AB result_expr: - expected_results - +33_n: OK regex: '((?-i:a.))b'i parsed_regex: '((?-i:a.))b'i str: a +B result_expr: - expected_results - +34_n: OK regex: '((?-i:a\N))b'i parsed_regex: '((?-i:a\N))b'i str: a +B result_expr: - expected_results - +35_y: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: a +B result_expr: $1 expected_results a + +36_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: a +B result_expr: - expected_results - +37_n: OK regex: '((?s-i:a.))b'i parsed_regex: '((?s-i:a.))b'i str: B +B result_expr: - expected_results - +38_n: OK regex: '((?s-i:a\N))b'i parsed_regex: '((?s-i:a\N))b'i str: B +B result_expr: - expected_results - +39_y: OK regex: (?i:.[b].) parsed_regex: (?i:.[b].) str: abd result_expr: $& expected_results abd +40_y: OK regex: (?i:\N[b]\N) parsed_regex: (?i:\N[b]\N) str: abd result_expr: $& expected_results abd +41_n: OK regex: ^(?:a?b?)*$ parsed_regex: ^(?:a?b?)*$ str: a-- result_expr: - expected_results - +42_y: OK regex: ((?s)^a(.))((?m)^b$) parsed_regex: ((?s)^a(.))((?m)^b$) str: a +b +c + result_expr: $1;$2;$3 expected_results a +; +;b +43_y: OK regex: ((?m)^b$) parsed_regex: ((?m)^b$) str: a +b +c + result_expr: $1 expected_results b +44_y: OK regex: (?m)^b parsed_regex: (?m)^b str: a +b + result_expr: $& expected_results b +45_y: OK regex: (?m)^(b) parsed_regex: (?m)^(b) str: a +b + result_expr: $1 expected_results b +46_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b + result_expr: $1 expected_results b +47_y: OK regex: \n((?m)^b) parsed_regex: \n((?m)^b) str: a +b + result_expr: $1 expected_results b +48_n: OK regex: ^b parsed_regex: ^b str: a +b +c + result_expr: - expected_results - +49_n: OK regex: ()^b parsed_regex: ()^b str: a +b +c + result_expr: - expected_results - +50_y: OK regex: ((?m)^b) parsed_regex: ((?m)^b) str: a +b +c + result_expr: $1 expected_results b +51_y: OK Warning: Parsed regex does not match. regex: '(foo)'n parsed_regex: '(?:foo)'n str: foobar result_expr: $&-$1 expected_results foo- +52_y: OK Warning: Parsed regex does not match. regex: '(?-n)(foo)(?n)(bar)'n parsed_regex: '(?-n)(foo)(?n)(?:bar)'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- +53_y: OK Warning: Parsed regex does not match. regex: '(?-n:(foo)(?n:(bar)))'n parsed_regex: '(?-n:(foo)(?n:(?:bar)))'n str: foobar result_expr: $&-$1-$2 expected_results foobar-foo- + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_15_group_modifiers.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_15_group_modifiers.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_16_perl_syntax_modifier.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_16_perl_syntax_modifier.cpp.execution new file mode 100644 index 000000000..761720007 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_16_perl_syntax_modifier.cpp.execution @@ -0,0 +1,35 @@ +Running tests_16_perl_syntax_modifier: +01_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +02_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +03_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +04_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +05_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +06_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +07_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +08_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +09_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +10_yS: OK regex: /[a b]/x parsed_regex: /[a b]/x str: result_expr: $& expected_results +11_n: OK regex: /[a b]/xx parsed_regex: /[a b]/xx str: result_expr: - expected_results - +12_y: OK regex: /[a\ b]/xx parsed_regex: /[a\ b]/xx str: result_expr: $& expected_results +13_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: a result_expr: - expected_results - +14_n: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: b result_expr: - expected_results - +15_y: OK regex: /[ ^ a b ]/xx parsed_regex: /[ ^ a b ]/xx str: A result_expr: $& expected_results A +16_yS: OK regex: /(?x:[a b])/xx parsed_regex: /(?x:[a b])/xx str: result_expr: $& expected_results +17_n: OK regex: /(?xx:[a b])/x parsed_regex: /(?xx:[a b])/x str: result_expr: - expected_results - +18_yS: OK regex: /(?x)[a b]/xx parsed_regex: /(?x)[a b]/xx str: result_expr: $& expected_results +19_n: OK regex: /(?xx)[a b]/x parsed_regex: /(?xx)[a b]/x str: result_expr: - expected_results - +20_yS: OK regex: /(?-x:[a b])/xx parsed_regex: /(?-x:[a b])/xx str: result_expr: $& expected_results +21_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $& expected_results a +22_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $-[0] expected_results 0 +23_y: OK Warning: Parsed regex does not match. regex: /\N {1}/x parsed_regex: /\N{1}/x str: abbbbc result_expr: $+[0] expected_results 1 +24_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $& expected_results abbb +25_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $-[0] expected_results 0 +26_y: OK Warning: Parsed regex does not match. regex: /\N {3,4}/x parsed_regex: /\N{3,4}/x str: abbbbc result_expr: $+[0] expected_results 4 +27_y: OK Warning: Parsed regex does not match. regex: /a\N c/x parsed_regex: /a\Nc/x str: abc result_expr: $& expected_results abc +28_y: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzc result_expr: $& expected_results axyzc +29_n: OK Warning: Parsed regex does not match. regex: /a\N *c/x parsed_regex: /a\N*c/x str: axyzd result_expr: - expected_results - +30_y: OK regex: /[#]/ parsed_regex: /[#]/ str: a#b result_expr: $& expected_results # +31_y: OK regex: /[#]b/ parsed_regex: /[#]b/ str: a#b result_expr: $& expected_results #b +32_y: OK regex: /[#]/x parsed_regex: /[#]/x str: a#b result_expr: $& expected_results # +33_y: OK regex: /[#]b/x parsed_regex: /[#]b/x str: a#b result_expr: $& expected_results #b + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_16_perl_syntax_modifier.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_16_perl_syntax_modifier.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_17_comments.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_17_comments.cpp.execution new file mode 100644 index 000000000..17c9a5d55 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_17_comments.cpp.execution @@ -0,0 +1,5 @@ +Running tests_17_comments: +01_y: OK regex: ^a(?#xxx){3}c parsed_regex: ^a(?#xxx){3}c str: aaac result_expr: $& expected_results aaac +02_y: OK Warning: Parsed regex does not match. regex: '^a (?#xxx) (?#yyy) {3}c'x parsed_regex: '^a(?#xxx)(?#yyy){3}c'x str: aaac result_expr: $& expected_results aaac +03_y: OK Warning: Parsed regex does not match. regex: 'foo # Match foo'x parsed_regex: 'foo'x str: foobar result_expr: $& expected_results foo + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_17_comments.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_17_comments.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_18_branch_reset.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_18_branch_reset.cpp.execution new file mode 100644 index 000000000..1d088ce31 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_18_branch_reset.cpp.execution @@ -0,0 +1,17 @@ +Running tests_18_branch_reset: +01_y: OK regex: (?|(a)) parsed_regex: (?|(a)) str: a result_expr: $1-$+ expected_results a-a +02_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: d!o!da result_expr: $1-$2-$3 expected_results !o!-o-a +03_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: aabc result_expr: $1-$2-$3 expected_results a--c +04_y: OK regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) parsed_regex: (?|a(.)b|d(.(o).)d|i(.)(.)j)(.) str: ixyjp result_expr: $1-$2-$3 expected_results x-y-p +05_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: a result_expr: $1 expected_results a +06_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: b result_expr: $1 expected_results b +07_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: c result_expr: $1 expected_results c +08_y: OK regex: (?|(?|(a)|(b))|(?|(c)|(d))) parsed_regex: (?|(?|(a)|(b))|(?|(c)|(d))) str: d result_expr: $1 expected_results d +09_y: OK regex: (.)(?|(.)(.)x|(.)d)(.) parsed_regex: (.)(?|(.)(.)x|(.)d)(.) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +10_y: OK regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) parsed_regex: (\N)(?|(\N)(\N)x|(\N)d)(\N) str: abcde result_expr: $1-$2-$3-$4-$5- expected_results b-c--e-- +11_yM: OK regex: (?|(?<foo>x)) parsed_regex: (?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +12_yM: OK regex: (?|(?<foo>x)|(?<bar>y)) parsed_regex: (?|(?<foo>x)|(?<bar>y)) str: x result_expr: $+{foo} expected_results x +13_yM: OK regex: (?|(?<bar>y)|(?<foo>x)) parsed_regex: (?|(?<bar>y)|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +14_yM: OK regex: (?<bar>)(?|(?<foo>x)) parsed_regex: (?<bar>)(?|(?<foo>x)) str: x result_expr: $+{foo} expected_results x +15_y: OK regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) parsed_regex: (?|(b)|()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(a)) str: a result_expr: $& expected_results a + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_18_branch_reset.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_18_branch_reset.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_19_lookahead.cpp.execution b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_19_lookahead.cpp.execution new file mode 100644 index 000000000..7b34914b1 --- /dev/null +++ b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_19_lookahead.cpp.execution @@ -0,0 +1,77 @@ +Running tests_19_lookahead: +01_y: OK regex: a(?!b). parsed_regex: a(?!b). str: abad result_expr: $& expected_results ad +02_y: OK regex: (?=)a parsed_regex: (?=)a str: a result_expr: $& expected_results a +03_y: OK regex: a(?=d). parsed_regex: a(?=d). str: abad result_expr: $& expected_results ad +04_y: OK regex: a(?=c|d). parsed_regex: a(?=c|d). str: abad result_expr: $& expected_results ad +05_y: OK regex: ^(?:b|a(?=(.)))*\1 parsed_regex: ^(?:b|a(?=(.)))*\1 str: abc result_expr: $& expected_results ab +06_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +07_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +08_y: OK regex: (?=(a+?))(\1ab) parsed_regex: (?=(a+?))(\1ab) str: aaab result_expr: $2 expected_results aab +09_n: OK regex: ^(?=(a+?))\1ab parsed_regex: ^(?=(a+?))\1ab str: aaab result_expr: - expected_results - +10_y: OK regex: (.*)(?=c) parsed_regex: (.*)(?=c) str: abcd result_expr: $1 expected_results ab +11_yB: OK regex: (.*)(?=c)c parsed_regex: (.*)(?=c)c str: abcd result_expr: $1 expected_results ab +12_y: OK regex: (.*)(?=b|c) parsed_regex: (.*)(?=b|c) str: abcd result_expr: $1 expected_results ab +13_y: OK regex: (.*)(?=b|c)c parsed_regex: (.*)(?=b|c)c str: abcd result_expr: $1 expected_results ab +14_y: OK regex: (.*)(?=c|b) parsed_regex: (.*)(?=c|b) str: abcd result_expr: $1 expected_results ab +15_y: OK regex: (.*)(?=c|b)c parsed_regex: (.*)(?=c|b)c str: abcd result_expr: $1 expected_results ab +16_y: OK regex: (.*)(?=[bc]) parsed_regex: (.*)(?=[bc]) str: abcd result_expr: $1 expected_results ab +17_yB: OK regex: (.*)(?=[bc])c parsed_regex: (.*)(?=[bc])c str: abcd result_expr: $1 expected_results ab +18_y: OK regex: (.*?)(?=c) parsed_regex: (.*?)(?=c) str: abcd result_expr: $1 expected_results ab +19_yB: OK regex: (.*?)(?=c)c parsed_regex: (.*?)(?=c)c str: abcd result_expr: $1 expected_results ab +20_y: OK regex: (.*?)(?=b|c) parsed_regex: (.*?)(?=b|c) str: abcd result_expr: $1 expected_results a +21_y: OK regex: (.*?)(?=b|c)c parsed_regex: (.*?)(?=b|c)c str: abcd result_expr: $1 expected_results ab +22_y: OK regex: (.*?)(?=c|b) parsed_regex: (.*?)(?=c|b) str: abcd result_expr: $1 expected_results a +23_y: OK regex: (.*?)(?=c|b)c parsed_regex: (.*?)(?=c|b)c str: abcd result_expr: $1 expected_results ab +24_y: OK regex: (.*?)(?=[bc]) parsed_regex: (.*?)(?=[bc]) str: abcd result_expr: $1 expected_results a +25_yB: OK regex: (.*?)(?=[bc])c parsed_regex: (.*?)(?=[bc])c str: abcd result_expr: $1 expected_results ab +26_y: OK regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) parsed_regex: ^(a*?)(?!(aa|aaaa)*$)(?=a\z) str: aaaaaaaa result_expr: $1 expected_results aaaaaaa +27_y: OK regex: a(?!b(?!c))(..) parsed_regex: a(?!b(?!c))(..) str: abababc result_expr: $1 expected_results bc +28_y: OK regex: a(?!b(?=a))(..) parsed_regex: a(?!b(?=a))(..) str: abababc result_expr: $1 expected_results bc +37_y: OK regex: X(\w+)(?=\s)|X(\w+) parsed_regex: X(\w+)(?=\s)|X(\w+) str: Xab result_expr: [$1-$2] expected_results [-ab] +38_y: OK regex: ^a*(?=b)b parsed_regex: ^a*(?=b)b str: ab result_expr: $& expected_results ab +39_y: OK regex: '(?!\A)x'm parsed_regex: '(?!\A)x'm str: a +xb + result_expr: - expected_results - +40_n: OK regex: '^(o)(?!.*\1)'i parsed_regex: '^(o)(?!.*\1)'i str: Oo result_expr: - expected_results - +41_n: OK regex: .*a(?!(b|cd)*e).*f parsed_regex: .*a(?!(b|cd)*e).*f str: ......abef result_expr: - expected_results - +42_y: OK regex: ^(a*?)(?!(aa|aaaa)*$) parsed_regex: ^(a*?)(?!(aa|aaaa)*$) str: aaaaaaaaaaaaaaaaaaaa result_expr: $1 expected_results a +43_y: OK regex: (?!)+?|(.{2,4}) parsed_regex: (?!)+?|(.{2,4}) str: abcde result_expr: $1 expected_results abcd +44_y: OK regex: ^(a*?)(?!(a{6}|a{5})*$) parsed_regex: ^(a*?)(?!(a{6}|a{5})*$) str: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa result_expr: $+[1] expected_results 12 +45_y: OK regex: a(?!b(?!c(?!d(?!e))))...(.) parsed_regex: a(?!b(?!c(?!d(?!e))))...(.) str: abxabcdxabcde result_expr: $1 expected_results e +46_y: OK regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X parsed_regex: X(?!b+(?!(c+)*(?!(c+)*d))).*X str: aXbbbbbbbcccccccccccccaaaX result_expr: - expected_results - +47_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1 expected_results + +48_y: OK regex: ((?s).)c(?!.) parsed_regex: ((?s).)c(?!.) str: a +b +c + result_expr: $1:$& expected_results +: +c +49_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1 expected_results b + +50_y: OK regex: ((?s)b.)c(?!.) parsed_regex: ((?s)b.)c(?!.) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +51_y: OK regex: ((?s)b.)c(?!\N) parsed_regex: ((?s)b.)c(?!\N) str: a +b +c + result_expr: $1:$& expected_results b +:b +c +52_y: OK regex: '(b.)c(?!\N)'s parsed_regex: '(b.)c(?!\N)'s str: a +b +c + result_expr: $1:$& expected_results b +:b +c +53_n: OK regex: a*(?!) parsed_regex: a*(?!) str: aaaab result_expr: - expected_results - + diff --git a/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_19_lookahead.cpp.output b/regression-tests/test-results/msvc-2022-c++latest/pure2-regex_19_lookahead.cpp.output new file mode 100644 index 000000000..e69de29bb diff --git a/source/regex.h2 b/source/regex.h2 index 84e8c1a12..4251773d0 100644 --- a/source/regex.h2 +++ b/source/regex.h2 @@ -15,6 +15,8 @@ template<typename matcher_wrapper, typename Iter, typename CharT> using matcher_wrapper_type = typename matcher_wrapper::template wrap<Iter, CharT>; +template<typename matcher> +using matcher_context_type = typename matcher::context; using error_func = std::function<void(std::string)>; @@ -834,9 +836,9 @@ parse_context: type = { // Misc functions - get_pos: (this) pos; - get_range: (this, start: int, end: int) std::string(regex..substr(start, end - start + 1)); - valid: (this) -> bool = { return has_next() && !has_error; } + get_pos: (this) pos; + get_range: (this, start: size_t, end: size_t) std::string(regex..substr(start, end - start + 1)); + valid: (this) -> bool = { return has_next() && !has_error; } error: (inout this, err: std::string) -> token_ptr = { has_error = true; @@ -2425,7 +2427,7 @@ word_boundary_token_matcher: <CharT, negate: bool> (inout cur, inout ctx) -> boo regular_expression: <CharT, matcher_wrapper> type = { matcher: <Iter> type == matcher_wrapper_type<matcher_wrapper, Iter, CharT>; // TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727 - context: <Iter> type == matcher<Iter>::context; + context: <Iter> type == matcher_context_type<matcher<Iter>>; // TODO: Remove when nested types are allowed: https://github.com/hsutter/cppfront/issues/727 search_return: <Iter> type = { public matched: bool;