# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"<[^>]+>"
test_str = ("\n"
"<!DOCTYPE html>\n"
"<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n"
"<head>\n"
" <title>Online regex tester and debugger: JavaScript, Python, PHP, and PCRE</title>\n"
" <link href=\"//fonts.googleapis.com/css?family=Open+Sans:400,700,300&subset=latin\" rel=\"stylesheet\" type=\"text/css\">\n"
" <link href=\"/css/main.1433274325.css\" rel=\"stylesheet\" type=\"text/css\">\n"
" <link type=\"text/plain\" rel=\"author\" href=\"//regex101.com/humans.txt\">\n"
" <link rel=\"icon\" href=\"/favicon.ico\" type=\"image/x-icon\">\n"
" <link href=\"//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\" rel=\"stylesheet\">\n"
" <meta charset=\"utf-8\">\n"
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n"
" <meta name=\"keywords\" content=\"javascript,regex,regular expression,debugger,explainer,helper,tester,match,pcre,python,editor\">\n"
" <meta name=\"description\" content=\"Online regex tester, debugger with highlighting for PHP, PCRE, Python and JavaScript.\">\n"
" <meta name=\"author\" content=\"Firas Dib\">\n"
" <meta property=\"twitter:card\" content=\"summary\">\n"
" <meta property=\"twitter:site\" content=\"@regex101\">\n"
" <meta property=\"twitter:title\" content=\"Regex101 - online regex editor and debugger\">\n"
" <meta property=\"twitter:description\" content=\"Regex101 allows you to create, debug, test and have your expressions explained for PHP, PCRE, JavaScript and Python. The website also features a community where you can share useful expressions.\">\n"
" <meta property=\"twitter:creator\" content=\"@regex101\">\n"
" <meta property=\"twitter:image\" content=\"//regex101.com/gfx/preview.png\">\n"
" <meta property=\"twitter:domain\" content=\"regex101.com\">\n"
"</head>\n"
"<body class=\"box_overflow_fix light default\" spellcheck=\"false\">\n"
" <div id=\"header_parent\">\n"
" <div id=\"header\">\n"
" <div id=\"header_menu\">\n"
" <a target=\"_blank\" href=\"https://twitter.com/regex101\"><i class=\"fa fa-twitter-square \"></i><span class=\"large_menu\">RegEx101</span></a>\n"
" <a target=\"_blank\" href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=firas%2edib%40gmail%2ecom&lc=US&item_name=Regex101&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest\"><i class=\"fa fa-dollar\"></i><span class=\"large_menu\">Donate</span></a>\n"
" <a target=\"_blank\" href=\"mailto:contact@regex101.com\"><i class=\"fa fa-send\"></i><span class=\"large_menu\">Contact</span></a> \n"
" <a target=\"_blank\" href=\"https://github.com/firasdib/Regex101/issues\"><i class=\"fa fa-exclamation-triangle\"></i><span class=\"large_menu\">Bug reports & Suggestions</span></a>\n"
" <div id=\"settings_popup\">\n"
" <span class=\"fa-stack fa-lg\" id=\"settings\" title=\"Adjust settings and theme\">\n"
" <i class=\"fa fa-circle fa-stack-2x\"></i>\n"
" <i class=\"fa fa-wrench fa-stack-1x\"></i>\n"
" </span>\n"
" <span class=\"fa-stack fa-lg\" id=\"sign_in_out\" title=\"Sign in\">\n"
" <i class=\"fa fa-circle fa-stack-2x\"></i>\n"
" <i class=\"fa fa-sign-in fa-stack-1x\"></i>\n"
" </span>\n"
" </div>\n"
" \n"
" </div>\n"
" <div class=\"text_overflow\">\n"
" <h1 id=\"logo\">\n"
" <a href=\"/\">\n"
" <div id=\"large_header\"><span class=\"part1\">regular</span> <span class=\"part2\">expressions</span> <span class=\"part3\">101</span></div>\n"
" <div id=\"small_header\"><span class=\"part1\">reg</span><span class=\"part2\">ex</span> <span class=\"part3\">101</span></div>\n"
" </a>\n"
" </h1>\n"
" <ul id=\"header_nav\">\n"
" <li class=\"fullscreen header_nav active main_menu main\" data-id=\"40\">\n"
" <i class=\"fa fa-terminal\"></i><span class=\"large_menu\">Regex Tester</span>\n"
" </li>\n"
" <li class=\"fullscreen header_nav main_menu community\" data-id=\"43\">\n"
" <i class=\"fa fa-cloud\"></i><span class=\"large_menu\">Regex Library</span>\n"
" </li>\n"
" <li class=\"fullscreen header_nav main_menu\" data-id=\"42\">\n"
" <a target=\"_blank\" href=\"http://webchat.freenode.net/?nick=regex101-....&channels=regex\" id=\"irc\">\n"
" <i class=\"fa fa-comments\"></i><span class=\"large_menu\">IRC</span>\n"
" </a>\n"
" </li>\n"
" </ul>\n"
" </div>\n"
" </div>\n"
" </div>\n"
" <div id=\"settings_popup_contents\">\n"
" <div class=\"left\">\n"
" <div class=\"label\"><i class=\"fa fa-gear settings\"></i> General Settings</div>\n"
" <input type=\"checkbox\" id=\"display_whitespace\" name=\"display_whitespace\" tabindex=\"999\" value=\"1\" data-id=\"1\">\n"
" <label class=\"design_label\" for=\"display_whitespace\">\n"
" <span></span>Display Whitespace\n"
" </label>\n"
" <input type=\"checkbox\" id=\"small_menu\" name=\"small_menu\" tabindex=\"999\" value=\"1\" data-id=\"201\">\n"
" <label class=\"design_label\" for=\"small_menu\">\n"
" <span></span>Use minimal view\n"
" </label>\n"
" <div class=\"label\"><i class=\"fa fa-picture-o theme\"></i> Theme</div>\n"
" <input type=\"radio\" id=\"light_theme\" name=\"theme\" tabindex=\"999\" value=\"1\" data-id=\"203\" checked=\"checked\">\n"
" <label class=\"design_label\" for=\"light_theme\">\n"
" <span></span>Use light theme\n"
" </label>\n"
" <input type=\"radio\" id=\"dark_theme\" name=\"theme\" tabindex=\"999\" value=\"1\" data-id=\"200\">\n"
" <label class=\"design_label\" for=\"dark_theme\">\n"
" <span></span>Use dark theme\n"
" </label>\n"
" </div>\n"
" <div class=\"right\">\n"
" <div id=\"colorizer_themes\">\n"
" <div class=\"label\"><i class=\"fa fa-terminal regex\"></i> Regex Settings</div>\n"
" <input type=\"checkbox\" id=\"colorize_regex\" name=\"colorize_regex\" tabindex=\"999\" value=\"1\" data-id=\"9\">\n"
" <label class=\"design_label\" for=\"colorize_regex\">\n"
" <span></span>Colorize syntax\n"
" </label>\n"
" <div class=\"select_themes\">\n"
" <strong>Theme:</strong>\n"
" <select class=\"light_themes\" data-id=\"999\">\n"
" <option value=\"default\">Default</option>\n"
" <option value=\"default_light\">Default - Light</option>\n"
" </select><select class=\"dark_themes\" data-id=\"999\">\n"
" <option value=\"default\">Default</option>\n"
" </select>\n"
" </div>\n\n"
" <input type=\"checkbox\" id=\"smart_completion\" name=\"smart_completion\" tabindex=\"999\" value=\"1\" data-id=\"210\">\n"
" <label class=\"design_label\" for=\"smart_completion\">\n"
" <span></span>Enable smart auto-completion\n"
" </label>\n"
" <input type=\"checkbox\" id=\"wrap_newlines\" name=\"wrap_newlines\" tabindex=\"999\" value=\"1\" data-id=\"10\">\n"
" <label class=\"design_label\" for=\"wrap_newlines\">\n"
" <span></span>Wrap long lines\n"
" </label>\n"
" <input type=\"checkbox\" id=\"highlight_interaction\" name=\"highlight_interaction\" tabindex=\"999\" value=\"0\" data-id=\"220\">\n"
" <label class=\"design_label\" for=\"highlight_interaction\">\n"
" <span></span>Highlight groups\n"
" </label>\n"
" <input type=\"checkbox\" id=\"display_nonpart\" name=\"display_nonpart\" tabindex=\"999\" value=\"0\" data-id=\"221\">\n"
" <label class=\"design_label\" for=\"display_nonpart\">\n"
" <span></span>Show non-participating groups\n"
" </label>\n"
" <div class=\"execution_limit\">\n"
" <label class=\"design_label\" for=\"execution_limit\">Max execution time:</label>\n"
" <input type=\"text\" name=\"execution_limit\" id=\"execution_limit\" placeholder=\"2000\"><em>ms</em>\n"
" </div>\n"
" </div>\n"
" <!--li id=\"dark_theme\" data-id=\"200\" class=\"menu_item\">\n"
" <i class=\"fa fa-picture-o\"></i><span class=\"large_menu\">Use dark theme</span>\n"
" </li-->\n"
" </div>\n"
" <div class=\"arrow-box-tip reverse\"></div>\n"
" </div>\n"
" <div class=\"denial_of_service\" id=\"splash\">\n"
" <div>\n"
" Initializing editor, please stand by... <i class=\"fa fa-cog fa-spin\"></i>\n"
" </div>\n"
" </div>\n"
" <div class=\"denial_of_service\" id=\"loading_screen\">\n"
" <div>\n"
" Loading content, please hold... <i class=\"fa fa-cog fa-spin\"></i>\n"
" </div>\n"
" </div>\n\n"
" <noscript>\n"
" <div class=\"denial_of_service\">\n"
" <div>\n"
" It seems like you have JavaScript disabled, rendering this website virtually useless.\n"
" Please enable JavaScript to use this service. If you don't know how, try <a href=\"http://enable-javascript.com/\">this</a>.\n"
" </div>\n"
" </div>\n"
" </noscript>\n"
" <div class=\"denial_of_service\" id=\"old_browser\">\n"
" <div>You seem to be using an outdated version of your browser which is no longer supported by <strong>regex101.com</strong>. It is highly recommended that you upgrade your browser. Sorry for the inconvenience.</div>\n"
" </div>\n"
"<div id=\"inline_menu\" class=\"box_overflow_fix general_menu\">\n"
" <ul class=\"first-ul overflow_handler\">\n"
" <li class=\"regex_menu extension_menu share_menu\">\n"
" <ul>\n"
" <li class=\"menu_notice\">Save & Share</li>\n"
" <li id=\"permalink_menu\" class=\"menu_item disabled\" data-id=\"3\" data-permalink=\"\" data-version=\"\">\n"
" <i class=\"fa fa-save\"></i><span class=\"large_menu\">Save Regex (CTRL+S)</span>\n"
" </li>\n"
" <li id=\"permalink_fork\" class=\"menu_item\" data-id=\"900\" style=\"display: none;\">\n"
" <i class=\"fa fa-code-fork\"></i><span class=\"large_menu\">Fork Regex</span>\n"
" </li>\n"
" <li class=\"menu_item unique disabled\" data-id=\"4\" id=\"community_submit\">\n"
" <i class=\"fa fa-cloud-upload\"></i><span class=\"large_menu\">Add to Regex Library</span>\n"
" </li>\n"
" </ul>\n"
" </li>\n"
" <li class=\"regex_menu extension_menu no_top_space\">\n"
" <ul>\n"
" <li class=\"menu_notice\">Flavor</li>\n"
" <li class=\"flavor_pcre menu_item active\" data-id=\"20\">\n"
" <span class=\"mini_menu\">PCRE</span>\n"
" <span class=\"large_menu\"><i class=\"fa fa-file\"></i>PCRE (PHP)</span>\n"
" </li>\n"
" <li class=\"flavor_js menu_item \" data-id=\"21\">\n"
" <span class=\"mini_menu\">JS</span>\n"
" <span class=\"large_menu\"><i class=\"fa fa-file\"></i>JavaScript</span>\n"
" </li>\n"
" <li class=\"flavor_python menu_item \" data-id=\"22\">\n"
" <span class=\"mini_menu\">PY</span>\n"
" <span class=\"large_menu\"><i class=\"fa fa-file\"></i>Python</span>\n"
" </li>\n"
" </ul>\n"
" </li>\n"
" <li class=\"regex_menu extension_menu\" id=\"tools_menu\">\n"
" <ul>\n"
" <li class=\"menu_notice\">Tools</li>\n"
" <li class=\"menu_item\" data-id=\"50\" id=\"format_regex\">\n"
" <i class=\"fa fa-indent\"></i><span class=\"large_menu\">Format Regex (requires free-spacing, /x)</span>\n"
" </li>\n"
" <li class=\"menu_item unique fullscreen disabled menu_toggle\" data-id=\"8\" id=\"sample_menu\">\n"
" <i class=\"fa fa-code\"></i><span class=\"large_menu\">Code Generator</span>\n"
" </li>\n"
" <li class=\"menu_item unique disabled fullscreen menu_toggle\" data-id=\"7\" id=\"debugger_menu\">\n"
" <i class=\"fa fa-bug\"></i><span class=\"large_menu\">Regex Debugger</span>\n"
" </li>\n"
" <li class=\"menu_item menu_toggle\" data-id=\"99\" id=\"unit_tests\">\n"
" <i class=\"fa fa-check\"></i><span class=\"large_menu\"><span class=\"unit_test_player\"><i class=\"fa fa-play run_tests\" title=\"Run tests (CTRL+K)\"></i><span class=\"unit_result\">n/a</span><span class=\"unit_progress\"></span></span><span class=\"text_overflow\">Unit tests</span></span>\n"
" </li>\n"
" </ul>\n"
" </li>\n"
" <li id=\"filter_menu\" class=\"extension_menu community_menu no_top_space\">\n"
" <ul>\n"
" <li class=\"menu_notice\">Filter flavors</li>\n"
" <li class=\"flavor_pcre menu_item active\" data-id=\"100\" data-flavor-id=\"1\">\n"
" <span class=\"mini_menu\">PCRE</span>\n"
" <span class=\"large_menu\"><i class=\"fa fa-file\"></i>PCRE (PHP)</span>\n"
" </li>\n"
" <li class=\"flavor_js menu_item active\" data-id=\"101\" data-flavor-id=\"2\">\n"
" <span class=\"mini_menu\">JS</span>\n"
" <span class=\"large_menu\"><i class=\"fa fa-file\"></i>JavaScript</span>\n"
" </li>\n"
" <li class=\"flavor_python menu_item active\" data-id=\"102\" data-flavor-id=\"3\">\n"
" <span class=\"mini_menu\">PY</span>\n"
" <span class=\"large_menu\"><i class=\"fa fa-file\"></i>Python</span>\n"
" </li>\n"
" </ul>\n"
" </li>\n"
" <li class=\"account_submenu extension_menu\">\n"
" <ul>\n"
" <li class=\"menu_notice\">Filter type</li>\n"
" <li class=\"menu_item active\" data-id=\"300\" id=\"only_fav\"><i class=\"fa fa-star\"></i><span class=\"large_menu\">View favorites</span></li>\n"
" <li class=\"menu_item active\" data-id=\"301\" id=\"only_contrib\"><i class=\"fa fa-bookmark-o\"></i><span class=\"large_menu\">View contributions</span></li>\n"
" </ul>\n"
" </li>\n"
" <li class=\"donate_submenu extension_menu\">\n"
" <ul>\n"
" <li class=\"menu_item\"><a target=\"_blank\" href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=firas%2edib%40gmail%2ecom&lc=US&item_name=Regex101&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHostedGuest\"><i class=\"fa-dollar fa\"></i><span class=\"large_menu\" data-txt=\"Thank you!\">Consider a donation</span></a></li>\n"
" </ul>\n"
" </li>\n"
" </ul>\n"
"</div>\n"
"<div id=\"content\">\n"
" <div id=\"community\" class=\"box_overflow_fix extension_window\"></div>\n"
" <div id=\"account\" class=\"box_overflow_fix extension_window\"></div>\n"
" \n"
" <div id=\"regex_editor\" class=\"box_overflow_fix\">\n"
" <div id=\"code_samples\" class=\"extension_window box_overflow_fix overflow_handler\"></div>\n\n\n"
" <div id=\"regex_debugger\" class=\"box_overflow_fix extension_window\">\n"
" <div id=\"regex_debugger_bg\" class=\"box_overflow_fix\">\n"
" <div class=\"label\" id=\"debugger_label\">Status: Fetching debug info...</div>\n\n"
" <div id=\"label_container\" class=\"monospace\">\n"
" <input type=\"checkbox\" id=\"show_regex_pos\" name=\"show_regex_pos\" tabindex=\"999\" value=\"1\" checked=\"checked\"/>\n"
" <label class=\"design_label\" for=\"show_regex_pos\">\n"
" <span></span>Display position in pattern\n"
" </label>\n"
" \n"
" <input type=\"checkbox\" id=\"internal_opt\" name=\"internal_opt\" tabindex=\"999\" value=\"1\"/>\n"
" <label class=\"design_label\" for=\"internal_opt\">\n"
" <span></span>Disable internal engine optimizations\n"
" </label>\n\n"
" <a href=\"#\" id=\"debugger_collapse\">collapse all</a>\n"
" </div>\n\n"
" </div>\n"
" <div id=\"regex_debugger_window\" class=\"overflow_handler\">\n"
" <div class=\"debugger_loader_padding\"></div>\n"
" </div>\n"
" </div>\n\n\n"
" <div id=\"main_editor\" class=\"flex-container box_overflow_fix\">\n"
" <div id=\"regex_container\" class=\"flex-regex box_overflow_fix\">\n"
" <label for=\"regex\">\n"
" Regular Expression\n"
" <div id=\"version_container\" style=\"display: none;\">\n"
" —\n"
" <select id=\"version_selector\">\n"
" </select>\n"
" </div>\n"
" <span id=\"result_indicator\" class=\"no_match\">no match</span>\n"
" </label>\n\n"
" <div id=\"regex_input\" class=\"box_overflow_fix richtext_parent\">\n"
" <div id=\"delimiter_selector\" class=\"richtext_left slash_menu slash box_overflow_fix\" data-dropdown=\".delimiter-dropdown\">/</div>\n"
" <div class=\"richtext_right\">\n"
" <div class=\"slash slash_menu\" data-dropdown=\".delimiter-dropdown\">/</div><!--\n"
" --><div id=\"options_container\">\n"
" <input data-focus=\"#options_container\" value=\"\" id=\"options\" name=\"options\" size=\"20\" tabindex=\"2\" type=\"text\" placeholder=\"gmixXsuUAJ\"/>\n"
" <i id=\"options_helper\" class=\"fa fa-question-circle\"></i>\n"
" </div>\n"
" <div id=\"options_helper_contents\"></div>\n"
" </div>\n"
" <div class=\"richtext_padding\">\n"
" <div class=\"richtext_container\" id=\"richtext_regex_container\">\n"
" <div class=\"richtext\" id=\"richtext_regex\">\n"
" <pre><span class=\"colorizer_height\"></span><br/></pre>\n"
" <pre id=\"regex_colors\"><span></span><br/></pre>\n"
" <textarea data-focus=\"#richtext_regex_container\" spellcheck=\"false\" id=\"regex\" name=\"regex\" tabindex=\"1\" rows=\"1\" cols=\"50\" placeholder=\"insert your regular expression here\" autofocus=\"autofocus\"></textarea>\n"
" </div>\n"
" </div>\n"
" </div>\n"
" </div>\n"
" </div>\n\n\n"
" <div id=\"test_result_container\" class=\"box_overflow_fix flex-text \">\n"
" <label for=\"regex_string\">Test string</label>\n"
" <div class=\"overflow_handler flex-grow\">\n"
" <div class=\"richtext\" id=\"richtext_test\">\n"
" <pre><span id=\"richtext_test_size\"></span><br> </pre>\n"
" <pre id=\"richtext_test_colors\"><span id=\"test_color_element\"></span><br></pre>\n"
" <textarea wrap=\"off\" data-focus=\"#test_result_container .overflow_handler\" spellcheck=\"false\" id=\"regex_string\" class=\"box_overflow_fix\" name=\"test\" rows=\"10\" tabindex=\"3\" placeholder=\"insert your test string here\"></textarea>\n"
" </div>\n"
" </div>\n"
" </div>\n\n"
" <div id=\"subst_parent\" class=\"box_overflow_fix flex-sub \">\n"
" <label for=\"sub\" class=\"expander collapsed\">\n"
" <span class=\"fa fa-plus-circle\"></span>Substitution\n"
" </label>\n"
" <div id=\"subst_container\" class=\"overflow_handler flex-grow\">\n"
" <input class=\"box_overflow_fix\" value=\"\" id=\"sub\" name=\"sub\" tabindex=\"3\" type=\"text\" placeholder=\"substitution; \\num = backreference, \\n = newline, \\t = tab\">\n"
" <div id=\"subst_area\" class=\"overflow_handler flex-grow\">\n"
" <div contenteditable=\"true\" id=\"subst_result\" class=\"monospace hard_break box_overflow_fix\"></div>\n"
" </div>\n"
" </div>\n"
" </div>\n\n"
" <div id=\"unit_tests_builder\" class=\"box_overflow_fix flex-unit-builder\">\n"
" <div class=\"label\">Create test<div class=\"right\"><a href=\"#\" class=\"button\" tabindex=\"23\">Add test</a></div></div>\n"
" <div id=\"unit_test_creator\" class=\"box_overflow_fix\">\n"
" <div class=\"test_builder\">\n"
" <div class=\"the_test pt1\">\n"
" <div class=\"left\">given the string</div>\n"
" <div class=\"right\"><textarea tabindex=\"19\" class=\"box_overflow_fix\" id=\"unit_data\" placeholder=\"test string\"></textarea></div>\n"
" </div>\n"
" <div class=\"the_test pt2\">\n"
" <div class=\"left\"><span>assert that</span><select id=\"unit_type\" tabindex=\"20\"></select><select tabindex=\"21\" id=\"assert_type\"></select></div>\n"
" <div class=\"right\"><textarea tabindex=\"22\" class=\"box_overflow_fix\" id=\"assert_equals\" type=\"text\" placeholder=\"string value\"></textarea></div>\n"
" </div>\n"
" </div>\n"
" </div>\n"
" </div>\n"
" <div id=\"unit_tests_list\" class=\"box_overflow_fix flex-unit-list\">\n"
" <div class=\"label\">Test list<div class=\"right unit_test_player\"><i class=\"fa fa-play run_tests\" title=\"Run tests (CTRL+K)\"></i><span class=\"unit_result\">n/a</span></div></div>\n"
" <div id=\"unit_test_window\" class=\"unit_test_window flex-grow overflow_handler\">\n"
" <div class=\"all_tests\">\n"
" <div id=\"unit_test_container\">\n"
" </div>\n"
" </div>\n"
" </div>\n"
" </div>\n\n"
" \n"
" </div>\n\n\n"
" <div id=\"regex_treeview\" class=\"box_overflow_fix\">\n"
" <div id=\"treeview_resizer\" title=\"Keep dragging\"><div></div></div>\n"
" <div id=\"treeview_content\" class=\"box_overflow_fix flex-container\">\n"
" <div id=\"scroll_treeview\" class=\"box_overflow_fix flex-elem\">\n\n"
" <div id=\"explainer_label\" class=\"label expander\">\n"
" <span class=\"fa\"></span>Explanation\n"
" </div>\n"
" <div class=\"overflow_handler box_overflow_fix flex-grow\">\n"
" <div id=\"treeview\" style=\"height: 100%\">\n"
" An explanation of your regex will be automatically generated as you type.\n"
" </div>\n"
" </div>\n\n"
" </div>\n"
" <div id=\"scroll_match\" class=\"box_overflow_fix flex-elem\">\n\n"
" <div id=\"match_label\" class=\"label expander\">\n"
" <span class=\"fa\"></span>Match information\n"
" </div>\n"
" <div class=\"overflow_handler box_overflow_fix flex-grow\">\n"
" <div id=\"match_info\">\n"
" Detailed match information will be displayed here automatically.\n"
" </div>\n"
" </div>\n\n"
" </div>\n\n\n"
" <div id=\"quickref\" class=\"box_overflow_fix flex-elem\">\n"
" <div class=\"label expander\">\n"
" <span class=\"fa\"></span>Quick reference\n"
" </div>\n"
" <div id=\"quickref_data\" class=\"flex-grow\">\n"
" <div id=\"first_menu\" class=\"box_overflow_fix general_menu\">\n"
" <ul>\n"
" <li class=\"menu_notice\">\n"
" <div class=\"filter_input filter_mini box_overflow_fix\" id=\"quickref_filter_parent\">\n"
" <i class=\"fa fa-search\"></i>\n"
" <div class=\"filter_div\">\n"
" <input data-focus=\"#quickref_filter_parent\" type=\"text\" id=\"quickref_filter\" class=\"filter_parent box_overflow_fix\" name=\"quickref_filter\" value=\"\" placeholder=\"filter\">\n"
" </div>\n"
" </div>\n"
" <span class=\"text_overflow\" style=\"margin-right: 5px;\">Full reference</span>\n"
" </li>\n"
" <li class=\"menu_item\" data-id=\"basic\"><i class=\"fa fa-star\"></i>Most used tokens</li>\n"
" <li class=\"menu_item\" data-id=\"fullref\"><i class=\"fa fa-database\"></i>All tokens</li>\n"
" <li class=\"menu_notice\">Categories</li>\n"
" <li class=\"menu_item\" data-id=\"other\"><i class=\"fa fa-dot-circle-o\"></i>General tokens</li>\n"
" <li class=\"menu_item\" data-id=\"anchors\"><i class=\"fa fa-anchor\"></i>Anchors</li>\n"
" <li class=\"menu_item\" data-id=\"meta\"><i class=\"fa fa-bolt\"></i>Meta sequences</li>\n"
" <li class=\"menu_item\" data-id=\"quantifiers\"><i class=\"fa fa-asterisk\"></i>Quantifiers</li>\n"
" <li class=\"menu_item\" data-id=\"groups\"><i class=\"fa fa-dot-circle-o\"></i>Group constructs</li>\n"
" <li class=\"menu_item\" data-id=\"charclass\"><i class=\"fa fa-th-large\"></i>Character classes</li>\n"
" <li class=\"menu_item\" data-id=\"modifiers\"><i class=\"fa fa-flag\"></i>Flags/Modifiers</li>\n"
" <li class=\"menu_item\" data-id=\"subst\"><i class=\"fa fa-scissors\"></i>Substitution</li>\n"
" <li class=\"menu_item\" id=\"quickref_search\"><i class=\"fa fa-search\"></i>Search result</li>\n"
" </ul>\n"
" </div>\n"
" <div id=\"second_menu\" class=\"no_icon box_overflow_fix general_menu overflow_handler\">\n"
" <ul class=\"no_icon\"></ul>\n"
" </div>\n"
" </div>\n"
" </div>\n\n"
" </div>\n"
" </div>\n\n"
" \n"
" </div>\n"
"</div>\n"
" \n"
" <div class=\"delimiter-dropdown dropdown dropdown-relative dropdown-tip dropdown-index\">\n"
" <ul class=\"dropdown-menu\">\n"
" <li><a href=\"#\">/</a></li>\n"
" <li><a href=\"#\">~</a></li>\n"
" <li><a href=\"#\">@</a></li>\n"
" <li><a href=\"#\">;</a></li>\n"
" <li><a href=\"#\">%</a></li>\n"
" <li><a href=\"#\">`</a></li>\n"
" </ul>\n"
" </div>\n"
"<div id=\"dimmer\"></div>\n"
"<div id=\"dimmer-popup\"></div>\n"
"<div id=\"match-tooltip\" class=\"arrow-box monospace\">\n"
" <div id=\"tooltip-contents\"></div>\n"
" <div id=\"match-tooltip-tip\" class=\"arrow-box-tip\"></div>\n"
"</div>\n\n"
"<script src=\"/js/underscore-min.1433274318.js\" type=\"text/javascript\"></script>\n"
"<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\" type=\"text/javascript\"></script>\n"
"<script src=\"/js/jquery.tools.1433274318.js\" type=\"text/javascript\"></script>\n"
"<script src=\"/js/general.regex101.1433274319.js\" type=\"text/javascript\"></script>\n"
"<script src=\"/js/colorParser.regex101.1433274323.js\" type=\"text/javascript\"></script>\n"
"<script src=\"/js/explainer.regex101.1433274320.js\" type=\"text/javascript\"></script>\n"
"<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','UA-33878479-1','regex101.com');ga('send','pageview');</script>\n"
"<script src=\"/js/common.regex101.1433274322.js\" type=\"text/javascript\"></script>\n"
"<script src=\"/js/matcher.regex101.1433274321.js\" type=\"text/javascript\"></script>\n"
"</body>\n"
"</html>")
matches = re.finditer(regex, test_str)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html