// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"<\/?[^>]*>").unwrap();
let string = "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"><head>
<title>Online regex tester and debugger: JavaScript, Python, PHP, and PCRE</title>
<link href=\"//fonts.googleapis.com/css?family=Open+Sans:400,700,300&subset=latin\" rel=\"stylesheet\" type=\"text/css\">
<link href=\"/css/A.main.1436803526.css.pagespeed.cf.U-YlBZVXI2.css\" rel=\"stylesheet\" type=\"text/css\">
<link type=\"text/plain\" rel=\"author\" href=\"//regex101.com/humans.txt\">
<link rel=\"icon\" href=\"/favicon.ico\" type=\"image/x-icon\">
<link href=\"//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\" rel=\"stylesheet\">
<meta charset=\"utf-8\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">
<meta name=\"keywords\" content=\"javascript,regex,regular expression,debugger,explainer,helper,tester,match,pcre,python,editor\">
<meta name=\"description\" content=\"Online regex tester, debugger with highlighting for PHP, PCRE, Python and JavaScript.\">
<meta name=\"author\" content=\"Firas Dib\">
<meta property=\"twitter:card\" content=\"summary\">
<meta property=\"twitter:site\" content=\"@regex101\">
<meta property=\"twitter:title\" content=\"Regex101 - online regex editor and debugger\">
<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.\">
<meta property=\"twitter:creator\" content=\"@regex101\">
<meta property=\"twitter:image\" content=\"//regex101.com/gfx/preview.png\">
<meta property=\"twitter:domain\" content=\"regex101.com\">
</head>
<body class=\"box_overflow_fix light default\" spellcheck=\"false\">
<div id=\"header_parent\">
<div id=\"header\">
<div id=\"header_menu\">
<a target=\"_blank\" href=\"https://twitter.com/regex101\" original-title=\"\"><i class=\"fa fa-twitter-square \"></i><span class=\"large_menu\">RegEx101</span></a>
<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\" original-title=\"\"><i class=\"fa fa-dollar\"></i><span class=\"large_menu\">Donate</span></a>
<a target=\"_blank\" href=\"mailto:contact@regex101.com\" original-title=\"\"><i class=\"fa fa-send\"></i><span class=\"large_menu\">Contact</span></a>
<a target=\"_blank\" href=\"https://github.com/firasdib/Regex101/issues\" original-title=\"\"><i class=\"fa fa-exclamation-triangle\"></i><span class=\"large_menu\">Bug reports & Suggestions</span></a>
<div id=\"settings_popup\">
<span class=\"fa-stack fa-lg\" id=\"settings\" title=\"Adjust settings and theme\">
<i class=\"fa fa-circle fa-stack-2x\"></i>
<i class=\"fa fa-wrench fa-stack-1x\"></i>
</span>
<span class=\"fa-stack fa-lg\" id=\"sign_in_out\" title=\"Sign in\">
<i class=\"fa fa-circle fa-stack-2x\"></i>
<i class=\"fa fa-sign-in fa-stack-1x\"></i>
</span>
</div>
</div>
<div class=\"text_overflow\">
<h1 id=\"logo\">
<a href=\"/\">
<div id=\"large_header\"><span class=\"part1\">regular</span> <span class=\"part2\">expressions</span> <span class=\"part3\">101</span></div>
<div id=\"small_header\"><span class=\"part1\">reg</span><span class=\"part2\">ex</span> <span class=\"part3\">101</span></div>
</a>
</h1>
<ul id=\"header_nav\">
<li class=\"fullscreen header_nav active main_menu main\" data-id=\"40\" original-title=\"\">
<i class=\"fa fa-terminal\"></i><span class=\"large_menu\">Regex Tester</span>
</li>
<li class=\"fullscreen header_nav main_menu community\" data-id=\"43\" original-title=\"\">
<i class=\"fa fa-cloud\"></i><span class=\"large_menu\">Regex Library</span>
</li>
<li class=\"fullscreen header_nav main_menu\" data-id=\"42\" original-title=\"\">
<a target=\"_blank\" href=\"http://webchat.freenode.net/?nick=regex101-....&channels=regex\" id=\"irc\">
<i class=\"fa fa-comments\"></i><span class=\"large_menu\">IRC</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div id=\"settings_popup_contents\">
<div class=\"left\">
<div class=\"label\"><i class=\"fa fa-gear settings\"></i> General Settings</div>
<input type=\"checkbox\" id=\"display_whitespace\" name=\"display_whitespace\" tabindex=\"999\" value=\"1\" data-id=\"1\">
<label class=\"design_label\" for=\"display_whitespace\">
<span></span>Display Whitespace
</label>
<input type=\"checkbox\" id=\"small_menu\" name=\"small_menu\" tabindex=\"999\" value=\"1\" data-id=\"201\">
<label class=\"design_label\" for=\"small_menu\">
<span></span>Use minimal view
</label>
<div class=\"label\"><i class=\"fa fa-picture-o theme\"></i> Theme</div>
<input type=\"radio\" id=\"light_theme\" name=\"theme\" tabindex=\"999\" value=\"1\" data-id=\"203\" checked=\"checked\">
<label class=\"design_label\" for=\"light_theme\">
<span></span>Use light theme
</label>
<input type=\"radio\" id=\"dark_theme\" name=\"theme\" tabindex=\"999\" value=\"1\" data-id=\"200\">
<label class=\"design_label\" for=\"dark_theme\">
<span></span>Use dark theme
</label>
</div>
<div class=\"right\">
<div id=\"colorizer_themes\">
<div class=\"label\"><i class=\"fa fa-terminal regex\"></i> Regex Settings</div>
<input type=\"checkbox\" id=\"colorize_regex\" name=\"colorize_regex\" tabindex=\"999\" value=\"1\" data-id=\"9\">
<label class=\"design_label\" for=\"colorize_regex\">
<span></span>Colorize syntax
</label>
<div class=\"select_themes\">
<strong>Theme:</strong>
<select class=\"light_themes\" data-id=\"999\">
<option value=\"default\">Default</option>
<option value=\"default_light\">Default - Light</option>
</select><select class=\"dark_themes\" data-id=\"999\">
<option value=\"default\">Default</option>
</select>
</div>
<input type=\"checkbox\" id=\"smart_completion\" name=\"smart_completion\" tabindex=\"999\" value=\"1\" data-id=\"210\">
<label class=\"design_label\" for=\"smart_completion\">
<span></span>Enable smart auto-completion
</label>
<input type=\"checkbox\" id=\"wrap_newlines\" name=\"wrap_newlines\" tabindex=\"999\" value=\"1\" data-id=\"10\">
<label class=\"design_label\" for=\"wrap_newlines\">
<span></span>Wrap long lines
</label>
<input type=\"checkbox\" id=\"highlight_interaction\" name=\"highlight_interaction\" tabindex=\"999\" value=\"0\" data-id=\"220\">
<label class=\"design_label\" for=\"highlight_interaction\">
<span></span>Highlight groups
</label>
<input type=\"checkbox\" id=\"display_nonpart\" name=\"display_nonpart\" tabindex=\"999\" value=\"0\" data-id=\"221\">
<label class=\"design_label\" for=\"display_nonpart\">
<span></span>Show non-participating groups
</label>
<div class=\"execution_limit\">
<label class=\"design_label\" for=\"execution_limit\">Max execution time:</label>
<input type=\"text\" name=\"execution_limit\" id=\"execution_limit\" placeholder=\"2000\" original-title=\"\"><em>ms</em>
</div>
</div>
<!--li id=\"dark_theme\" data-id=\"200\" class=\"menu_item\">
<i class=\"fa fa-picture-o\"></i><span class=\"large_menu\">Use dark theme</span>
</li-->
</div>
<div class=\"arrow-box-tip reverse\"></div>
</div>
<div class=\"denial_of_service\" id=\"splash\" style=\"display: none;\">
<div>
Initializing editor, please stand by... <i class=\"fa fa-cog fa-spin\"></i>
</div>
</div>
<div class=\"denial_of_service\" id=\"loading_screen\">
<div>
Loading content, please hold... <i class=\"fa fa-cog fa-spin\"></i>
</div>
</div>
<noscript>
<div class=\"denial_of_service\">
<div>
It seems like you have JavaScript disabled, rendering this website virtually useless.
Please enable JavaScript to use this service. If you don't know how, try <a href=\"http://enable-javascript.com/\">this</a>.
</div>
</div>
</noscript>
<div class=\"denial_of_service\" id=\"old_browser\">
<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>
</div>
<div id=\"inline_menu\" class=\"box_overflow_fix general_menu\">
<ul class=\"first-ul overflow_handler\">
<li class=\"regex_menu extension_menu share_menu\">
<ul>
<li class=\"menu_notice\">Save & Share</li>
<li id=\"permalink_menu\" class=\"menu_item\" data-id=\"3\" data-permalink=\"\" data-version=\"\" original-title=\"\">
<i class=\"fa fa-save\"></i><span class=\"large_menu\">Save Regex (CTRL+S)</span>
</li>
<li id=\"permalink_fork\" class=\"menu_item\" data-id=\"900\" style=\"display: none;\" original-title=\"\">
<i class=\"fa fa-code-fork\"></i><span class=\"large_menu\">Fork Regex</span>
</li>
<li class=\"menu_item unique\" data-id=\"4\" id=\"community_submit\" original-title=\"\">
<i class=\"fa fa-cloud-upload\"></i><span class=\"large_menu\">Add to Regex Library</span>
</li>
</ul>
</li>
<li class=\"regex_menu extension_menu no_top_space\">
<ul>
<li class=\"menu_notice\">Flavor</li>
<li class=\"flavor_pcre menu_item active\" data-id=\"20\" original-title=\"\">
<span class=\"mini_menu\">PCRE</span>
<span class=\"large_menu\"><i class=\"fa fa-file\"></i>PCRE (PHP)</span>
</li>
<li class=\"flavor_js menu_item \" data-id=\"21\" original-title=\"\">
<span class=\"mini_menu\">JS</span>
<span class=\"large_menu\"><i class=\"fa fa-file\"></i>JavaScript</span>
</li>
<li class=\"flavor_python menu_item \" data-id=\"22\" original-title=\"\">
<span class=\"mini_menu\">PY</span>
<span class=\"large_menu\"><i class=\"fa fa-file\"></i>Python</span>
</li>
</ul>
</li>
<li class=\"regex_menu extension_menu\" id=\"tools_menu\">
<ul>
<li class=\"menu_notice\">Tools</li>
<li class=\"menu_item\" data-id=\"50\" id=\"format_regex\" original-title=\"\">
<i class=\"fa fa-indent\"></i><span class=\"large_menu\">Format Regex (requires free-spacing, /x)</span>
</li>
<li class=\"menu_item unique fullscreen menu_toggle\" data-id=\"8\" id=\"sample_menu\" original-title=\"\">
<i class=\"fa fa-code\"></i><span class=\"large_menu\">Code Generator</span>
</li>
<li class=\"menu_item unique fullscreen menu_toggle\" data-id=\"7\" id=\"debugger_menu\" original-title=\"\">
<i class=\"fa fa-bug\"></i><span class=\"large_menu\">Regex Debugger</span>
</li>
<li class=\"menu_item menu_toggle\" data-id=\"99\" id=\"unit_tests\" original-title=\"\">
<i class=\"fa fa-check\"></i><span class=\"large_menu\"><span class=\"unit_test_player\" style=\"display: none;\"><i class=\"fa fa-play run_tests\" title=\"Run tests (CTRL+K)\" original-title=\"Run tests\"></i><span class=\"unit_result\">n/a</span><span class=\"unit_progress\"></span></span><span class=\"text_overflow\">Unit tests</span></span>
</li>
</ul>
</li>
<li id=\"filter_menu\" class=\"extension_menu community_menu no_top_space\">
<ul>
<li class=\"menu_notice\">Filter flavors</li>
<li class=\"flavor_pcre menu_item active\" data-id=\"100\" data-flavor-id=\"1\" original-title=\"\">
<span class=\"mini_menu\">PCRE</span>
<span class=\"large_menu\"><i class=\"fa fa-file\"></i>PCRE (PHP)</span>
</li>
<li class=\"flavor_js menu_item active\" data-id=\"101\" data-flavor-id=\"2\" original-title=\"\">
<span class=\"mini_menu\">JS</span>
<span class=\"large_menu\"><i class=\"fa fa-file\"></i>JavaScript</span>
</li>
<li class=\"flavor_python menu_item active\" data-id=\"102\" data-flavor-id=\"3\" original-title=\"\">
<span class=\"mini_menu\">PY</span>
<span class=\"large_menu\"><i class=\"fa fa-file\"></i>Python</span>
</li>
</ul>
</li>
<li class=\"account_submenu extension_menu\">
<ul>
<li class=\"menu_notice\">Filter type</li>
<li class=\"menu_item active\" data-id=\"300\" id=\"only_fav\" original-title=\"\"><i class=\"fa fa-star\"></i><span class=\"large_menu\">View favorites</span></li>
<li class=\"menu_item active\" data-id=\"301\" id=\"only_contrib\" original-title=\"\"><i class=\"fa fa-bookmark-o\"></i><span class=\"large_menu\">View contributions</span></li>
</ul>
</li>
<li class=\"donate_submenu extension_menu\">
<ul>
<li class=\"menu_item\" original-title=\"\"><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>
</ul>
</li>
</ul>
</div>
<div id=\"content\">
<div id=\"community\" class=\"box_overflow_fix extension_window\"></div>
<div id=\"account\" class=\"box_overflow_fix extension_window\"></div>
<div id=\"regex_editor\" class=\"box_overflow_fix\">
<div id=\"code_samples\" class=\"extension_window box_overflow_fix overflow_handler\"></div>
<div id=\"regex_debugger\" class=\"box_overflow_fix extension_window\">
<div id=\"regex_debugger_bg\" class=\"box_overflow_fix\">
<div class=\"label\" id=\"debugger_label\">Status: Fetching debug info...</div>
<div id=\"label_container\" class=\"monospace\">
<input type=\"checkbox\" id=\"show_regex_pos\" name=\"show_regex_pos\" tabindex=\"999\" value=\"1\" checked=\"checked\">
<label class=\"design_label\" for=\"show_regex_pos\">
<span></span>Display position in pattern
</label>
<input type=\"checkbox\" id=\"internal_opt\" name=\"internal_opt\" tabindex=\"999\" value=\"1\">
<label class=\"design_label\" for=\"internal_opt\">
<span></span>Disable internal engine optimizations
</label>
<a href=\"#\" id=\"debugger_collapse\">collapse all</a>
</div>
</div>
<div id=\"regex_debugger_window\" class=\"overflow_handler\">
<div class=\"debugger_loader_padding\"></div>
</div>
</div>
<div id=\"main_editor\" class=\"flex-container box_overflow_fix\">
<div id=\"regex_container\" class=\"flex-regex box_overflow_fix\">
<label for=\"regex\">
Regular Expression
<div id=\"version_container\" style=\"display: none;\">
—
<select id=\"version_selector\">
</select>
</div>
<span id=\"result_indicator\" class=\"no_match\">no match</span>
</label>
<div id=\"regex_input\" class=\"box_overflow_fix richtext_parent\">
<div id=\"delimiter_selector\" class=\"richtext_left slash_menu slash box_overflow_fix\" data-dropdown=\".delimiter-dropdown\">/</div>
<div class=\"richtext_right\">
<div class=\"slash slash_menu\" data-dropdown=\".delimiter-dropdown\">/</div><!--
--><div id=\"options_container\">
<input data-focus=\"#options_container\" value=\"\" id=\"options\" name=\"options\" size=\"20\" tabindex=\"2\" type=\"text\" placeholder=\"gmixXsuUAJ\">
<i id=\"options_helper\" class=\"fa fa-question-circle\"></i>
</div>
<div id=\"options_helper_contents\" style=\"width: 165px; left: 10px; top: 98px; display: none;\"><div class=\"label\">Modifier quick reference</div><ul id=\"quickref_flags\"><li><div class=\"file\"><span class=\"modifier\">g modifier:</span> <strong>g</strong>lobal. All matches (don't return on first match)</div></li><li><div class=\"file\"><span class=\"modifier\">m modifier:</span> <strong>m</strong>ulti-line. Causes <span class=\"misc\">^</span> and <span class=\"misc\">$</span> to match the begin/end of each line (not only begin/end of string)</div></li><li><div class=\"file\"><span class=\"modifier\">i modifier:</span> <strong>i</strong>nsensitive. Case insensitive match (ignores case of <span class=\"treeCharclass\">[a-zA-Z]</span>)</div></li><li><div class=\"file\"><span class=\"modifier\">x modifier:</span> e<strong>x</strong>tended. Spaces and text after a <span class=\"misc\">#</span> in the pattern are ignored</div></li><li><div class=\"file\"><span class=\"modifier\">X modifier:</span> e<strong>X</strong>tra. A <span class=\"misc\">\\</span> followed by a letter with no special meaning is faulted</div></li><li><div class=\"file\"><span class=\"modifier\">s modifier:</span> <strong>s</strong>ingle line. Dot matches newline characters</div></li><li><div class=\"file\"><span class=\"modifier\">u modifier:</span> <strong>u</strong>nicode: Pattern strings are treated as <span class=\"misc\">UTF-16</span>. Also causes escape sequences to match unicode characters</div></li><li><div class=\"file\"><span class=\"modifier\">U modifier:</span> <strong>U</strong>ngreedy. The match becomes lazy by default. Now a <span class=\"misc\">?</span> following a quantifier makes it greedy</div></li><li><div class=\"file\"><span class=\"modifier\">A modifier:</span> <strong>A</strong>nchored. Pattern is forced to <span class=\"misc\">^</span></div></li><li><div class=\"file\"><span class=\"modifier\">J modifier:</span> Allow duplicate subpattern names</div></li><li><em>All flags with further information can be found in the quick reference.</em></li></ul></div>
</div>
<div class=\"richtext_padding\">
<div class=\"richtext_container\" id=\"richtext_regex_container\">
<div class=\"richtext\" id=\"richtext_regex\">
<pre><span class=\"colorizer_height\"><html>.*<\\/html></span><br></pre>
<pre id=\"regex_colors\"><span><html>.*<\\/html></span><br></pre>
<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\" wrap=\"true\"></textarea>
</div>
</div>
</div>
</div>
</div>
<div id=\"test_result_container\" class=\"box_overflow_fix flex-text \">
<label for=\"regex_string\">Test string</label>
<div class=\"overflow_handler flex-grow\">
<div class=\"richtext\" id=\"richtext_test\">
<pre><span id=\"richtext_test_size\"></span><br> </pre>
<pre id=\"richtext_test_colors\"><span id=\"test_color_element\"></span><br></pre>
<textarea wrap=\"true\" 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>
</div>
</div>
</div>
<div id=\"subst_parent\" class=\"box_overflow_fix flex-sub \">
<label for=\"sub\" class=\"expander collapsed\">
<span class=\"fa fa-plus-circle\"></span>Substitution
</label>
<div id=\"subst_container\" class=\"overflow_handler flex-grow\">
<div class=\"basic_richtext box_overflow_fix regex_colorizer\" id=\"basic_richtext_sub\"><div class=\"basic_richtext_scroller\"><pre class=\"basic_richtext_pre box_overflow_fix\"><span></span> </pre><input class=\"box_overflow_fix\" value=\"\" id=\"sub\" name=\"sub\" tabindex=\"3\" type=\"text\" placeholder=\"substitution; \\num = backreference, \\n = newline, \\t = tab\" data-focus=\"#basic_richtext_sub\"></div></div>
<div id=\"subst_area\" class=\"overflow_handler flex-grow\">
<div contenteditable=\"true\" id=\"subst_result\" class=\"monospace hard_break box_overflow_fix\"></div>
</div>
</div>
</div>
<div id=\"unit_tests_builder\" class=\"box_overflow_fix flex-unit-builder\">
<div class=\"label\">Create test<div class=\"right\"><a href=\"#\" class=\"button\" tabindex=\"23\">Add test</a></div></div>
<div id=\"unit_test_creator\" class=\"box_overflow_fix\">
<div class=\"test_builder\">
<div class=\"the_test pt1\">
<div class=\"left\">given the string</div>
<div class=\"right\"><textarea tabindex=\"19\" class=\"box_overflow_fix\" id=\"unit_data\" placeholder=\"test string\"></textarea></div>
</div>
<div class=\"the_test pt2\">
<div class=\"left\"><span>assert that</span><select id=\"unit_type\" tabindex=\"20\"></select><select tabindex=\"21\" id=\"assert_type\"></select></div>
<div class=\"right\"><textarea tabindex=\"22\" class=\"box_overflow_fix\" id=\"assert_equals\" type=\"text\" placeholder=\"string value\"></textarea></div>
</div>
</div>
</div>
</div>
<div id=\"unit_tests_list\" class=\"box_overflow_fix flex-unit-list\">
<div class=\"label\">Test list<div class=\"right unit_test_player\" style=\"display: none;\"><i class=\"fa fa-play run_tests\" title=\"Run tests (CTRL+K)\" original-title=\"Run tests\"></i><span class=\"unit_result\">n/a</span></div></div>
<div id=\"unit_test_window\" class=\"unit_test_window flex-grow overflow_handler\">
<div class=\"all_tests\">
<div id=\"unit_test_container\"><div class=\"empty\"><h2>Nothing here!</h2><span class=\"acount_no_entry_text\">There are no unit tests for this regex. Add some!</span></div></div>
</div>
</div>
</div>
</div>
<div id=\"regex_treeview\" class=\"box_overflow_fix\">
<div id=\"treeview_resizer\" original-title=\"Keep dragging\"><div></div></div>
<div id=\"treeview_content\" class=\"box_overflow_fix flex-container\">
<div id=\"scroll_treeview\" class=\"box_overflow_fix flex-elem\">
<div id=\"explainer_label\" class=\"label expander\">
<span class=\"fa fa-minus-circle\"></span>Explanation
</div>
<div class=\"overflow_handler box_overflow_fix flex-grow\">
<div id=\"treeview\" style=\"height: 100%\"><ul id=\"regexExplainer\" class=\"filetree treeview\"><li><div class=\"hitarea collapsable\"><i class=\"fa fa-caret-down\"></i></div><div class=\"first-folder\"><div><span class=\"expslash\">/</span><span class=\"treeview_pattern regex_colorizer\"><html>.*<\\/html></span><span class=\"expslash\">/</span><span class=\"treeview_pattern treeview_options\"></span></div></div><ul><li><div class=\"file\"><span class=\"token\"><html></span> matches the characters <span class=\"literal\"><html></span> literally (case sensitive)</div></li><li><div class=\"hitarea collapsable\"><i class=\"fa fa-caret-down\"></i></div><div class=\"folder\"><span class=\"token\">.*</span> matches any character (except newline)</div><ul><li><div class=\"file\"><span class=\"note\">Quantifier:</span> <span class=\"inner-quantifier\">*</span> Between <span class=\"quantifier\">zero</span> and <span class=\"quantifier\">unlimited</span> times, as many times as possible, giving back as needed <span class=\"misc\">[greedy]</span></div></li></ul></li><li><div class=\"file\"><span class=\"token\"><</span> matches the characters <span class=\"literal\"><</span> literally</div></li><li><div class=\"file\"><span class=\"token\">\\/</span> matches the character <span class=\"literal\">/</span> literally</div></li><li><div class=\"file\"><span class=\"token\">html></span> matches the characters <span class=\"literal\">html></span> literally (case sensitive)</div></li></ul></li></ul></div>
</div>
</div>
<div id=\"scroll_match\" class=\"box_overflow_fix flex-elem\">
<div id=\"match_label\" class=\"label expander\">
<span class=\"fa fa-minus-circle\"></span>Match information
</div>
<div class=\"overflow_handler box_overflow_fix flex-grow\">
<div id=\"match_info\"><div>Your pattern does <strong class=\"errorize_text\">not</strong> match the subject string.</div></div>
</div>
</div>
<div id=\"quickref\" class=\"box_overflow_fix flex-elem\">
<div class=\"label expander\">
<span class=\"fa fa-minus-circle\"></span>Quick reference
</div>
<div id=\"quickref_data\" class=\"flex-grow\">
<div id=\"first_menu\" class=\"box_overflow_fix general_menu\">
<ul>
<li class=\"menu_notice\">
<div class=\"filter_input filter_mini box_overflow_fix\" id=\"quickref_filter_parent\">
<i class=\"fa fa-search\"></i>
<div class=\"filter_div\">
<input data-focus=\"#quickref_filter_parent\" type=\"text\" id=\"quickref_filter\" class=\"filter_parent box_overflow_fix\" name=\"quickref_filter\" value=\"\" placeholder=\"filter\">
</div>
</div>
<span class=\"text_overflow\" style=\"margin-right: 5px;\">Full reference</span>
</li>
<li class=\"menu_item\" data-id=\"basic\"><i class=\"fa fa-star\"></i>Most used tokens</li>
<li class=\"menu_item active\" data-id=\"fullref\"><i class=\"fa fa-database\"></i>All tokens</li>
<li class=\"menu_notice\">Categories</li>
<li class=\"menu_item\" data-id=\"other\"><i class=\"fa fa-dot-circle-o\"></i>General tokens</li>
<li class=\"menu_item\" data-id=\"anchors\"><i class=\"fa fa-anchor\"></i>Anchors</li>
<li class=\"menu_item\" data-id=\"meta\"><i class=\"fa fa-bolt\"></i>Meta sequences</li>
<li class=\"menu_item\" data-id=\"quantifiers\"><i class=\"fa fa-asterisk\"></i>Quantifiers</li>
<li class=\"menu_item\" data-id=\"groups\"><i class=\"fa fa-dot-circle-o\"></i>Group constructs</li>
<li class=\"menu_item\" data-id=\"charclass\"><i class=\"fa fa-th-large\"></i>Character classes</li>
<li class=\"menu_item\" data-id=\"modifiers\"><i class=\"fa fa-flag\"></i>Flags/Modifiers</li>
<li class=\"menu_item\" data-id=\"subst\"><i class=\"fa fa-scissors\"></i>Substitution</li>
<li class=\"menu_item\" id=\"quickref_search\"><i class=\"fa fa-search\"></i>Search result</li>
</ul>
</div>
<div id=\"second_menu\" class=\"no_icon box_overflow_fix general_menu overflow_handler\">
<ul class=\"no_icon\"><li class=\"menu_notice\">All tokens</li><li class=\"menu_item box_overflow_fix\" data-id=\"0\"><div>\\n</div><div class=\"text_overflow\">Newline</div></li><li class=\"submenu\">Matches a newline character</li><li class=\"menu_item box_overflow_fix\" data-id=\"1\"><div>\\r</div><div class=\"text_overflow\">Carriage return</div></li><li class=\"submenu\">Matches a carriage return character</li><li class=\"menu_item box_overflow_fix\" data-id=\"2\"><div>\\t</div><div class=\"text_overflow\">Tab</div></li><li class=\"submenu\">Matches a tab character</li><li class=\"menu_item box_overflow_fix\" data-id=\"3\"><div>\\0</div><div class=\"text_overflow\">Null character</div></li><li class=\"submenu\">Matches a null character</li><li class=\"menu_item box_overflow_fix\" data-id=\"4\"><div>[abc]</div><div class=\"text_overflow\">A single character of: a, b or c</div></li><li class=\"submenu\">Matches either an a, b or c character<div class=\"quickref_label\">/[abc]+/</div><div class=\"quickref_regex hard_break\"><b>a</b> <b>bb</b> <b>ccc</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"5\"><div>[^abc]</div><div class=\"text_overflow\">A character except: a, b or c</div></li><li class=\"submenu\">Matches any character except for an a, b or c<div class=\"quickref_label\">/[^abc]+/</div><div class=\"quickref_regex hard_break\"><b>Anything </b>b<b>ut </b>abc<b>.</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"6\"><div>[a-z]</div><div class=\"text_overflow\">A character in the range: a-z</div></li><li class=\"submenu\">Matches any characters between a and z, including a and z<div class=\"quickref_label\">/[a-z]+/</div><div class=\"quickref_regex hard_break\">O<b>nly</b> <b>a</b>-<b>z</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"7\"><div>[^a-z]</div><div class=\"text_overflow\">A character not in the range: a-z</div></li><li class=\"submenu\">Matches any characters except one in the range a-z<div class=\"quickref_label\">/[^a-z]+/</div><div class=\"quickref_regex hard_break\"><b>A</b>nything<b> </b>but<b> </b>a<b>-</b>z<b>.</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"8\"><div>[a-zA-Z]</div><div class=\"text_overflow\">A character in the range: a-z or A-Z</div></li><li class=\"submenu\">Matches any characters between a-z or A-Z. You can combine as much as you please.<div class=\"quickref_label\">/[a-zA-Z]+/</div><div class=\"quickref_regex hard_break\"><b>abc</b>123<b>DEF</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"9\"><div>[[:alnum:]]</div><div class=\"text_overflow\">Letters and digits</div></li><li class=\"submenu\">An alternate way to match any letter or digit<div class=\"quickref_label\">/[[:alnum:]]/</div><div class=\"quickref_regex hard_break\"><b>1st</b>, <b>2nd</b>, <b>and</b> <b>3rd</b>.</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"10\"><div>[[:alpha:]]</div><div class=\"text_overflow\">Letters</div></li><li class=\"submenu\">An alternate way to match alpanumeric letters<div class=\"quickref_label\">/[[:alpha:]]+/</div><div class=\"quickref_regex hard_break\"><b>hello</b>, <b>there</b>!</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"11\"><div>[[:ascii:]]</div><div class=\"text_overflow\">Ascii codes 0-127</div></li><li class=\"submenu\">Matches any character in the valid ASCII range</li><li class=\"menu_item box_overflow_fix\" data-id=\"12\"><div>[[:blank:]]</div><div class=\"text_overflow\">Space or tab only</div></li><li class=\"submenu\">Matches spaces and tabs (but not newlines)<div class=\"quickref_label\">/[[:blank:]]/</div><div class=\"quickref_regex hard_break\">a<b> </b>b<b> </b>c</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"13\"><div>[[:cntrl:]]</div><div class=\"text_overflow\">Control characters</div></li><li class=\"submenu\">Matches characters that are often used to control text presentation, including newlines, null characters, tabs and the escape character. Equivalent to [\\x00-\\x1F\\x7F].</li><li class=\"menu_item box_overflow_fix\" data-id=\"14\"><div>[[:digit:]]</div><div class=\"text_overflow\">Decimal digits</div></li><li class=\"submenu\">Matches decimal digits. Equivalent to [0-9].<div class=\"quickref_label\">/[[:digit:]]/</div><div class=\"quickref_regex hard_break\">one: <b>1</b>, two: <b>2</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"15\"><div>[[:graph:]]</div><div class=\"text_overflow\">Visible characters (not space)</div></li><li class=\"submenu\">Matches printable, non-whitespace characters only.</li><li class=\"menu_item box_overflow_fix\" data-id=\"16\"><div>[[:lower:]]</div><div class=\"text_overflow\">Lowercase letters</div></li><li class=\"submenu\">Matches lowercase letters. Equivalent to [a-z].<div class=\"quickref_label\">/[[:lower:]]+/</div><div class=\"quickref_regex hard_break\"><b>abc</b>DEF<b>ghi</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"17\"><div>[[:print:]]</div><div class=\"text_overflow\">Visible characters</div></li><li class=\"submenu\">Matches printable characters, such as letters and spaces, without including control characters.</li><li class=\"menu_item box_overflow_fix\" data-id=\"18\"><div>[[:punct:]]</div><div class=\"text_overflow\">Visible punctuation characters</div></li><li class=\"submenu\">Matches characters that are not whitespace, letters or numbers.<div class=\"quickref_label\">/[[:punct:]]/</div><div class=\"quickref_regex hard_break\">hello<b>,</b> regex user<b>!</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"19\"><div>[[:space:]]</div><div class=\"text_overflow\">Whitespace</div></li><li class=\"submenu\">Matches whitespace characters. Equivalent to \\s.<div class=\"quickref_label\">/[[:space:]]+/</div><div class=\"quickref_regex hard_break\">any<b> </b>whitespace<b> </b>character</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"20\"><div>[[:upper:]]</div><div class=\"text_overflow\">Uppercase letters</div></li><li class=\"submenu\">Matches uppercase letters. Equivalent to [A-Z].<div class=\"quickref_label\">/[[:upper:]]+/</div><div class=\"quickref_regex hard_break\"><b>ABC</b>abc<b>DEF</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"21\"><div>[[:word:]]</div><div class=\"text_overflow\">Word characters</div></li><li class=\"submenu\">Matches letters, numbers and underscores. Equivalent to \\w<div class=\"quickref_label\">/[[:word:]]+/</div><div class=\"quickref_regex hard_break\"><b>any</b> <b>word</b> <b>character</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"22\"><div>[[:xdigit:]]</div><div class=\"text_overflow\">Hexadecimal digits</div></li><li class=\"submenu\">Matches hexadecimal digits. Equivalent to [0-9a-fA-F].<div class=\"quickref_label\">/[[:xdigit:]]+/</div><div class=\"quickref_regex hard_break\">h<b>e</b>x<b>123</b>!</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"23\"><div>.</div><div class=\"text_overflow\">Any single character</div></li><li class=\"submenu\">Matches any character other than newline (or including newline with the /s flag)<div class=\"quickref_label\">/.+/</div><div class=\"quickref_regex hard_break\"><b>a b c</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"24\"><div>\\s</div><div class=\"text_overflow\">Any whitespace character</div></li><li class=\"submenu\">Matches any space, tab or newline character.<div class=\"quickref_label\">/\\s/</div><div class=\"quickref_regex hard_break\">any<b> </b>whitespace<b> </b>character</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"25\"><div>\\S</div><div class=\"text_overflow\">Any non-whitespace character</div></li><li class=\"submenu\">Matches anything other than a space, tab or newline.<div class=\"quickref_label\">/\\S+/</div><div class=\"quickref_regex hard_break\"><b>any</b> <b>non-whitespace</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"26\"><div>\\d</div><div class=\"text_overflow\">Any digit</div></li><li class=\"submenu\">Matches any decimal digit. Equivalent to [0-9].<div class=\"quickref_label\">/\\d/</div><div class=\"quickref_regex hard_break\">one: <b>1</b>, two: <b>2</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"27\"><div>\\D</div><div class=\"text_overflow\">Any non-digit</div></li><li class=\"submenu\">Matches anything other than a decimal digit.<div class=\"quickref_label\">/\\D+/</div><div class=\"quickref_regex hard_break\"><b>one: </b>1<b>, two: </b>2</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"28\"><div>\\w</div><div class=\"text_overflow\">Any word character</div></li><li class=\"submenu\">Matches any letter, number or underscore.<div class=\"quickref_label\">/\\w+/</div><div class=\"quickref_regex hard_break\"><b>any</b> <b>word</b> <b>character</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"29\"><div>\\W</div><div class=\"text_overflow\">Any non-word character</div></li><li class=\"submenu\">Matches anything other than a letter, number or underscore.<div class=\"quickref_label\">/\\W+/</div><div class=\"quickref_regex hard_break\">any<b> </b>word<b> </b>character</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"30\"><div>\\X</div><div class=\"text_overflow\">Any unicode sequences</div></li><li class=\"submenu\">Matches any valid unicode sequence</li><li class=\"menu_item box_overflow_fix\" data-id=\"31\"><div>\\C</div><div class=\"text_overflow\">Match one data unit</div></li><li class=\"submenu\">Matches exactly one data unit of input</li><li class=\"menu_item box_overflow_fix\" data-id=\"32\"><div>\\R</div><div class=\"text_overflow\">Unicode newlines</div></li><li class=\"submenu\">Matches any unicode newline character.</li><li class=\"menu_item box_overflow_fix\" data-id=\"33\"><div>\\v</div><div class=\"text_overflow\">Vertical whitespace character</div></li><li class=\"submenu\">Matches newlines and vertical tabs. Works with unicode.</li><li class=\"menu_item box_overflow_fix\" data-id=\"34\"><div>\\V</div><div class=\"text_overflow\">Negation of \\v</div></li><li class=\"submenu\">Matches anything not matched by \\v</li><li class=\"menu_item box_overflow_fix\" data-id=\"35\"><div>\\h</div><div class=\"text_overflow\">Horizontal whitespace character</div></li><li class=\"submenu\">Matches spaces and horizontal tabs. Works with unicode.<div class=\"quickref_label\">/\\h/</div><div class=\"quickref_regex hard_break\">a<b> </b>b<b> </b>c</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"36\"><div>\\H</div><div class=\"text_overflow\">Negation of \\h</div></li><li class=\"submenu\">Matches anything not matched by \\H.<div class=\"quickref_label\">/\\H/</div><div class=\"quickref_regex hard_break\"><b>a</b> <b>b</b> <b>c</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"37\"><div>\\K</div><div class=\"text_overflow\">Reset match</div></li><li class=\"submenu\">Sets the given position in the regex as the new \"start\" of the match. This means that nothing preceding the \\K will be captured in the overall match.</li><li class=\"menu_item box_overflow_fix\" data-id=\"38\"><div>\\n</div><div class=\"text_overflow\">Match nth subpattern</div></li><li class=\"submenu\">Usually referred to as a `backreference`, this will match a repeat of the text captured in a previous set of parentheses.</li><li class=\"menu_item box_overflow_fix\" data-id=\"39\"><div>\\pX</div><div class=\"text_overflow\">Unicode property X</div></li><li class=\"submenu\">Matches a unicode character with the given property.<div class=\"quickref_label\">/\\pL+/</div><div class=\"quickref_regex hard_break\"><b>any</b> <b>letter</b>!</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"40\"><div>\\p{...}</div><div class=\"text_overflow\">Unicode property</div></li><li class=\"submenu\">Matches a unicode character with the given group of properties.<div class=\"quickref_label\">/\\p{L}+/</div><div class=\"quickref_regex hard_break\"><b>any</b> <b>letter</b>!</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"41\"><div>\\PX</div><div class=\"text_overflow\">Negation of \\p</div></li><li class=\"submenu\">Matches a unicode character without the given property.<div class=\"quickref_label\">/\\PL/</div><div class=\"quickref_regex hard_break\">any<b> </b>letter<b>!</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"42\"><div>\\P{...}</div><div class=\"text_overflow\">Negation of \\p</div></li><li class=\"submenu\">Matches a unicode character that doesn't have any of the given properties.<div class=\"quickref_label\">/\\P{L}/</div><div class=\"quickref_regex hard_break\">any<b> </b>letter<b>!</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"43\"><div>\\Q...\\E</div><div class=\"text_overflow\">Quote; treat as literals</div></li><li class=\"submenu\">Any characters between \\Q and \\E, including metacharacters, will be treated as literals.<div class=\"quickref_label\">/\\Qeverything \\w is ^ literal\\E/</div><div class=\"quickref_regex hard_break\"><b>everything \\w is ^ literal</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"44\"><div>\\k<name></div><div class=\"text_overflow\">Match subpattern `name`</div></li><li class=\"submenu\">Matches the text matched by a previously named capture group.</li><li class=\"menu_item box_overflow_fix\" data-id=\"45\"><div>\\k'name'</div><div class=\"text_overflow\">Match subpattern `name`</div></li><li class=\"submenu\">This is an alternate syntax for \\k<name>.</li><li class=\"menu_item box_overflow_fix\" data-id=\"46\"><div>\\k{name}</div><div class=\"text_overflow\">Match subpattern `name`</div></li><li class=\"submenu\">This is an alternate syntax for \\k<name>.</li><li class=\"menu_item box_overflow_fix\" data-id=\"47\"><div>\\gn</div><div class=\"text_overflow\">Match nth subpattern</div></li><li class=\"submenu\">This matches the text captured in the nth group. n can contain more than one digit, if necessary. This may be useful in order to avoid ambiguity with octal characters.</li><li class=\"menu_item box_overflow_fix\" data-id=\"48\"><div>\\g{n}</div><div class=\"text_overflow\">Match nth subpattern</div></li><li class=\"submenu\">This is an alternate syntax for \\gn. It can be useful in a situation where a literal number needs to be matched immediately after a \\gn in the regex.</li><li class=\"menu_item box_overflow_fix\" data-id=\"49\"><div>\\g{-n}</div><div class=\"text_overflow\">Match nth relative subpattern</div></li><li class=\"submenu\">This matches the text captured in the nth group before the current position in the regex.</li><li class=\"menu_item box_overflow_fix\" data-id=\"50\"><div>\\g'name'</div><div class=\"text_overflow\">Recurse subpattern `name`</div></li><li class=\"submenu\">Recursively matches the given named subpattern.</li><li class=\"menu_item box_overflow_fix\" data-id=\"51\"><div>\\g<n></div><div class=\"text_overflow\">Recurse nth subpattern</div></li><li class=\"submenu\">Recursively matches the given subpattern.</li><li class=\"menu_item box_overflow_fix\" data-id=\"52\"><div>\\g'n'</div><div class=\"text_overflow\">Recurse nth subpattern</div></li><li class=\"submenu\">Alternate syntax for \\g<n></li><li class=\"menu_item box_overflow_fix\" data-id=\"53\"><div>\\g<+n></div><div class=\"text_overflow\">Recurse nth relative subpattern</div></li><li class=\"submenu\">Recursively matches the nth pattern ahead of the current position in the regex.</li><li class=\"menu_item box_overflow_fix\" data-id=\"54\"><div>\\g'+n'</div><div class=\"text_overflow\">Recurse nth relative subpattern</div></li><li class=\"submenu\">Alternate syntax for \\g<+n></li><li class=\"menu_item box_overflow_fix\" data-id=\"56\"><div>\\xYY</div><div class=\"text_overflow\">Hex character YY</div></li><li class=\"submenu\">Matches the 8-bit character with the given hex value.<div class=\"quickref_label\">/\\x20/</div><div class=\"quickref_regex hard_break\">match<b> </b>all<b> </b>spaces</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"57\"><div>\\x{YYYY}</div><div class=\"text_overflow\">Hex character YYYY</div></li><li class=\"submenu\">Matches the 16-bit character with the given hex value.</li><li class=\"menu_item box_overflow_fix\" data-id=\"58\"><div>\\ddd</div><div class=\"text_overflow\">Octal character ddd</div></li><li class=\"submenu\">Matches the 8-bit character with the given octal value.<div class=\"quickref_label\">/\\041/</div><div class=\"quickref_regex hard_break\">ocal escape<b>!</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"59\"><div>\\cY</div><div class=\"text_overflow\">Control character Y</div></li><li class=\"submenu\">Matches ASCII characters typically associated with the Control+A through Control+Z: \\x01 through \\x1A</li><li class=\"menu_item box_overflow_fix\" data-id=\"60\"><div>[\\b]</div><div class=\"text_overflow\">Backspace character</div></li><li class=\"submenu\">Matches the backspace control character.</li><li class=\"menu_item box_overflow_fix\" data-id=\"61\"><div>\\</div><div class=\"text_overflow\">Makes any character literal</div></li><li class=\"submenu\">This may be used to obtain the literal value of any metacharacter.<div class=\"quickref_label\">/\\\\w/</div><div class=\"quickref_regex hard_break\">match <b>\\w</b> literally</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"62\"><div>(...)</div><div class=\"text_overflow\">Capture everything enclosed</div></li><li class=\"submenu\">Parts of the regex enclosed in parentheses may be referred to later in the expression or extracted from the results of a successful match.<div class=\"quickref_label\">/(he)+/</div><div class=\"quickref_regex hard_break\"><b>hehe</b>h <b>he</b> <b>he</b>h</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"63\"><div>(a|b)</div><div class=\"text_overflow\">Match either a or b</div></li><li class=\"submenu\">Matches the a or the b part of the subexpression.</li><li class=\"menu_item box_overflow_fix\" data-id=\"64\"><div>(?:...)</div><div class=\"text_overflow\">Match everything enclosed</div></li><li class=\"submenu\">This construct is similar to (...), but won't create a capture group.<div class=\"quickref_label\">/(?:he)+/</div><div class=\"quickref_regex hard_break\"><b>hehe</b>h <b>he</b> <b>he</b>h</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"65\"><div>(?>...)</div><div class=\"text_overflow\">Atomic group</div></li><li class=\"submenu\">Matches the longest possible substring in the group and doesn't allow later backtracking to reevaluate the group.</li><li class=\"menu_item box_overflow_fix\" data-id=\"66\"><div>(?|...)</div><div class=\"text_overflow\">Duplicate subpattern group</div></li><li class=\"submenu\">Any subpatterns in (...) in such a group share the same number.</li><li class=\"menu_item box_overflow_fix\" data-id=\"67\"><div>(?#...)</div><div class=\"text_overflow\">Comment</div></li><li class=\"submenu\">Any text appearing in this group is ignored in the regex.</li><li class=\"menu_item box_overflow_fix\" data-id=\"68\"><div>(?'name'...)</div><div class=\"text_overflow\">Named capturing group</div></li><li class=\"submenu\">This capturing group can be referred to using the given name instead of a number.</li><li class=\"menu_item box_overflow_fix\" data-id=\"69\"><div>(?<name>...)</div><div class=\"text_overflow\">Named capturing group</div></li><li class=\"submenu\">This capturing group can be referred to using the given name instead of a number.</li><li class=\"menu_item box_overflow_fix\" data-id=\"70\"><div>(?P<name>...)</div><div class=\"text_overflow\">Named capturing group</div></li><li class=\"submenu\">This capturing group can be referred to using the given name instead of a number.</li><li class=\"menu_item box_overflow_fix\" data-id=\"71\"><div>(?imsxXU)</div><div class=\"text_overflow\">Inline modifiers</div></li><li class=\"submenu\">These enable setting regex flags within the expression itself.<div class=\"quickref_label\">/a(?i)a/</div><div class=\"quickref_regex hard_break\"><b>aA</b> Aa <b>aa</b> AA</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"72\"><div>(?(...)|)</div><div class=\"text_overflow\">Conditional statement</div></li><li class=\"submenu\">If the given pattern matches, matches the pattern before the vertical bar. Otherwise, matches the pattern after the vertical bar.</li><li class=\"menu_item box_overflow_fix\" data-id=\"73\"><div>(?R)</div><div class=\"text_overflow\">Recurse entire pattern</div></li><li class=\"submenu\">Recursively match the entire expression.</li><li class=\"menu_item box_overflow_fix\" data-id=\"74\"><div>(?1)</div><div class=\"text_overflow\">Recurse first subpattern</div></li><li class=\"submenu\">Recursively match the first subpattern.</li><li class=\"menu_item box_overflow_fix\" data-id=\"75\"><div>(?+1)</div><div class=\"text_overflow\">Recurse first relative subpattern</div></li><li class=\"submenu\">Recursively match the first pattern following the given position in the expression.</li><li class=\"menu_item box_overflow_fix\" data-id=\"76\"><div>(?&name)</div><div class=\"text_overflow\">Recurse subpattern `name`</div></li><li class=\"submenu\">Recursively matches the given named subpattern.</li><li class=\"menu_item box_overflow_fix\" data-id=\"77\"><div>(?P=name)</div><div class=\"text_overflow\">Match subpattern `name`</div></li><li class=\"submenu\">Matches the text matched by a previously named capture group.</li><li class=\"menu_item box_overflow_fix\" data-id=\"78\"><div>(?P>name)</div><div class=\"text_overflow\">Recurse subpattern `name`</div></li><li class=\"submenu\">Recursively matches the given named subpattern.</li><li class=\"menu_item box_overflow_fix\" data-id=\"79\"><div>(?=...)</div><div class=\"text_overflow\">Positive lookahead</div></li><li class=\"submenu\">Matches the given subpattern without consuming characters<div class=\"quickref_label\">/foo(?=bar)/</div><div class=\"quickref_regex hard_break\"><b>foo</b>bar foobaz</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"80\"><div>(?!...)</div><div class=\"text_overflow\">Negative lookahead</div></li><li class=\"submenu\">Starting at the current position in the expression, ensures that the given pattern will not match. Does not consume characters.<div class=\"quickref_label\">/foo(?!bar)/</div><div class=\"quickref_regex hard_break\">foobar <b>foo</b>baz</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"81\"><div>(?<=...)</div><div class=\"text_overflow\">Positive lookbehind</div></li><li class=\"submenu\">Ensures that the given pattern will match, ending at the current position in the expression. Does not consume any characters.<div class=\"quickref_label\">/(?<=foo)bar/</div><div class=\"quickref_regex hard_break\">foo<b>bar</b> foobaz</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"82\"><div>(?<!...)</div><div class=\"text_overflow\">Negative lookbehind</div></li><li class=\"submenu\">Ensures that the given pattern would not match and end at the current position in the expression. Does not consume characters.<div class=\"quickref_label\">/(?<!not )foo/</div><div class=\"quickref_regex hard_break\">not foo but <b>foo</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"83\"><div>(*UTF16)</div><div class=\"text_overflow\">Verbs</div></li><li class=\"submenu\">Verbs allow for advanced control of the regex engine. Full specs can be found in pcre.txt</li><li class=\"menu_item box_overflow_fix\" data-id=\"84\"><div>a?</div><div class=\"text_overflow\">Zero or one of a</div></li><li class=\"submenu\">Matches an `a` character or nothing.<div class=\"quickref_label\">/ba?/</div><div class=\"quickref_regex hard_break\"><b>ba</b> <b>b</b> a</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"85\"><div>a*</div><div class=\"text_overflow\">Zero or more of a</div></li><li class=\"submenu\">Matches zero or more consecutive `a` characters.<div class=\"quickref_label\">/ba*/</div><div class=\"quickref_regex hard_break\">a <b>ba</b> <b>baa</b> aaa <b>ba</b> <b>b</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"86\"><div>a+</div><div class=\"text_overflow\">One or more of a</div></li><li class=\"submenu\">Matches one or more consecutive `a` characters.<div class=\"quickref_label\">/a+/</div><div class=\"quickref_regex hard_break\"><b>a</b> <b>aa</b> <b>aaa</b> <b>aaaa</b> b<b>a</b>b b<b>aa</b>b</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"87\"><div>a{3}</div><div class=\"text_overflow\">Exactly 3 of a</div></li><li class=\"submenu\">Matches exactly 3 consecutive `a` characters.<div class=\"quickref_label\">/a{3}/</div><div class=\"quickref_regex hard_break\">a aa <b>aaa</b> <b>aaa</b>a</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"88\"><div>a{3,}</div><div class=\"text_overflow\">3 or more of a</div></li><li class=\"submenu\">Matches at least 3 consecutive `a` characters.<div class=\"quickref_label\">/a{3,}/</div><div class=\"quickref_regex hard_break\">a aa <b>aaa</b> <b>aaaa</b> <b>aaaaaa</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"89\"><div>a{3,6}</div><div class=\"text_overflow\">Between 3 and 6 of a</div></li><li class=\"submenu\">Matches between 3 and 6 (inclusive) consecutive `a` characters.<div class=\"quickref_label\">/a{3,6}/</div><div class=\"quickref_regex hard_break\">a aa <b>aaa</b> <b>aaaa</b> <b>aaaaaa</b>aaaa</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"90\"><div>a*</div><div class=\"text_overflow\">Greedy quantifier</div></li><li class=\"submenu\">Matches as many characters as possible.<div class=\"quickref_label\">/a.*a/</div><div class=\"quickref_regex hard_break\">greedy c<b>an be dangerous a</b>t times</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"91\"><div>a*?</div><div class=\"text_overflow\">Lazy quantifier</div></li><li class=\"submenu\">Matches as few characters as possible.<div class=\"quickref_label\">/r\\w*?/</div><div class=\"quickref_regex hard_break\"><b>r</b> <b>r</b>e <b>r</b>egex</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"92\"><div>a*+</div><div class=\"text_overflow\">Possessive quantifier</div></li><li class=\"submenu\">Matches as many characers as possible; backtracking can't reduce the number of characters matched.</li><li class=\"menu_item box_overflow_fix\" data-id=\"93\"><div>\\G</div><div class=\"text_overflow\">Start of match</div></li><li class=\"submenu\">This will match at the position the previous successful match ended. Useful with the /g flag.</li><li class=\"menu_item box_overflow_fix\" data-id=\"94\"><div>^</div><div class=\"text_overflow\">Start of string</div></li><li class=\"submenu\">Matches the start of a string without consuming any characters. If multiline mode is used, this will also match immediately after a newline character.<div class=\"quickref_label\">/^\\w+/</div><div class=\"quickref_regex hard_break\"><b>start</b> of string</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"95\"><div>$</div><div class=\"text_overflow\">End of string</div></li><li class=\"submenu\">Matches the end of a string without consuming any characters. If multiline mode is used, this will also match immediately before a newline character.<div class=\"quickref_label\">/\\w+$/</div><div class=\"quickref_regex hard_break\">end of <b>string</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"96\"><div>\\A</div><div class=\"text_overflow\">Start of string</div></li><li class=\"submenu\">Matches the start of a string only. Unlike ^, this is not affected by multiline mode.<div class=\"quickref_label\">/\\A\\w+/</div><div class=\"quickref_regex hard_break\"><b>start</b> of string</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"97\"><div>\\Z</div><div class=\"text_overflow\">End of string</div></li><li class=\"submenu\">Matches the end of a string only. Unlike $, this is not affected by multiline mode.<div class=\"quickref_label\">/\\w+\\Z/</div><div class=\"quickref_regex hard_break\">end of <b>string</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"98\"><div>\\z</div><div class=\"text_overflow\">Absolute end of string</div></li><li class=\"submenu\">Matches the end of a string only. Unlike $, this is not affected by multiline mode, and, in contrast to \\Z, will not match before a trailing newline at the end of a string.<div class=\"quickref_label\">/\\w+\\z/</div><div class=\"quickref_regex hard_break\">absolute end of <b>string</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"99\"><div>\\b</div><div class=\"text_overflow\">A word boundary</div></li><li class=\"submenu\">Matches, without consuming any characters, immediately between a character matched by \\w and a character not matched by \\w (in either order).<div class=\"quickref_label\">/d\\b/</div><div class=\"quickref_regex hard_break\">wor<b>d</b> boundaries are od<b>d</b></div></li><li class=\"menu_item box_overflow_fix\" data-id=\"100\"><div>\\B</div><div class=\"text_overflow\">Non-word boundary</div></li><li class=\"submenu\">Matches, without consuming any characters, at the position between two characters matched by \\w.<div class=\"quickref_label\">/r\\B/</div><div class=\"quickref_regex hard_break\"><b>r</b>egex is <b>r</b>eally cool</div></li><li class=\"menu_item box_overflow_fix\" data-id=\"101\"><div>g</div><div class=\"text_overflow\">Global</div></li><li class=\"submenu\">Tells the engine not to stop after the first match has been found, but rather to continue until no more matches can be found.</li><li class=\"menu_item box_overflow_fix\" data-id=\"102\"><div>m</div><div class=\"text_overflow\">Multiline</div></li><li class=\"submenu\">The ^ and $ anchors now match at the beginning/end of each line respectively, instead of beginning/end of the entire string.</li><li class=\"menu_item box_overflow_fix\" data-id=\"103\"><div>i</div><div class=\"text_overflow\">Case insensitive</div></li><li class=\"submenu\">A case insensitive match is performed, meaning capital letters will be matched by non-capital letters and vice versa.</li><li class=\"menu_item box_overflow_fix\" data-id=\"104\"><div>x</div><div class=\"text_overflow\">Ignore whitespace</div></li><li class=\"submenu\">This flag tells the engine to ignore all whitespace and allow for comments in the regex. Comments are indicated by a starting \"#\"-character.</li><li class=\"menu_item box_overflow_fix\" data-id=\"105\"><div>s</div><div class=\"text_overflow\">Single line</div></li><li class=\"submenu\">The dot (.) metacharacter will with this flag enabled also match new lines.</li><li class=\"menu_item box_overflow_fix\" data-id=\"106\"><div>u</div><div class=\"text_overflow\">Unicode</div></li><li class=\"submenu\">Pattern strings will be treated as UTF-16.</li><li class=\"menu_item box_overflow_fix\" data-id=\"107\"><div>X</div><div class=\"text_overflow\">eXtended</div></li><li class=\"submenu\">Any character following a \\ that is not a valid meta sequence will be faulted and raise an error.</li><li class=\"menu_item box_overflow_fix\" data-id=\"108\"><div>U</div><div class=\"text_overflow\">Ungreedy</div></li><li class=\"submenu\">The engine will per default do lazy matching, instead of greedy. This means that a ? following a quantifier instead makes it greedy.</li><li class=\"menu_item box_overflow_fix\" data-id=\"109\"><div>A</div><div class=\"text_overflow\">Anchor</div></li><li class=\"submenu\">The pattern is forced to become anchored, equal to ^.</li><li class=\"menu_item box_overflow_fix\" data-id=\"110\"><div>\\0</div><div class=\"text_overflow\">Complete match contents</div></li><li class=\"submenu\">This will return a string with the complete match result from the regex.</li><li class=\"menu_item box_overflow_fix\" data-id=\"111\"><div>\\1</div><div class=\"text_overflow\">Contents in capture group 1</div></li><li class=\"submenu\">This will return a string with the contents from the first capture group. The number, in this case 1, can be any number as long as it corresponds to a valid capture group.</li><li class=\"menu_item box_overflow_fix\" data-id=\"112\"><div>$1</div><div class=\"text_overflow\">Contents in capture group 1</div></li><li class=\"submenu\">This will return a string with the contents from the first capture group. The number, in this case 1, can be any number as long as it corresponds to a valid capture group.</li><li class=\"menu_item box_overflow_fix\" data-id=\"116\"><div>${foo}</div><div class=\"text_overflow\">Contents in capture group `foo`</div></li><li class=\"submenu\">This will return a string with the contents from the capture group named `foo`. Any name can be used as long as it is defined in the regex. This syntax is made up and specific to only Regex101. If the J-flag is specified, content will be taken from the first capture group with the same name.</li><li class=\"menu_item box_overflow_fix\" data-id=\"117\"><div>\\{foo}</div><div class=\"text_overflow\">Contents in capture group `foo`</div></li><li class=\"submenu\">This will return a string with the contents from the capture group named `foo`. Any name can be used as long as it is defined in the regex. This syntax is made up and specific to only Regex101. If the J-flag is specified, content will be taken from the first capture group with the same name.</li><li class=\"menu_item box_overflow_fix\" data-id=\"118\"><div>\\g<foo></div><div class=\"text_overflow\">Contents in capture group `foo`</div></li><li class=\"submenu\">This will return a string with the contents from the capture group named `foo`. Any name can be used as long as it is defined in the regex. If the J-flag is specified, content will be taken from the first capture group with the same name.</li><li class=\"menu_item box_overflow_fix\" data-id=\"119\"><div>\\g<1></div><div class=\"text_overflow\">Contents in capture group 1</div></li><li class=\"submenu\">This will return a string with the contents from the first capture group. The number, in this case 1, can be any number as long as it corresponds to a valid capture group.</li><li class=\"menu_item box_overflow_fix\" data-id=\"120\"><div>\\x20</div><div class=\"text_overflow\">Hexadecimal replacement values</div></li><li class=\"submenu\">You can use hexadecimals to insert any character into the replacement string using the standard syntax.</li><li class=\"menu_item box_overflow_fix\" data-id=\"121\"><div>\\x{06fa}</div><div class=\"text_overflow\">Hexadecimal replacement values</div></li><li class=\"submenu\">You can use hexadecimals to insert any character into the replacement string using the standard syntax.</li><li class=\"menu_item box_overflow_fix\" data-id=\"122\"><div>\\t</div><div class=\"text_overflow\">Tab</div></li><li class=\"submenu\">Insert a tab character.</li><li class=\"menu_item box_overflow_fix\" data-id=\"123\"><div>\\r</div><div class=\"text_overflow\">Carriage return</div></li><li class=\"submenu\">Insert a carriage return character.</li><li class=\"menu_item box_overflow_fix\" data-id=\"124\"><div>\\n</div><div class=\"text_overflow\">Newline</div></li><li class=\"submenu\">Insert a newline character.</li><li class=\"menu_item box_overflow_fix\" data-id=\"125\"><div>\\f</div><div class=\"text_overflow\">Form-feed</div></li><li class=\"submenu\">Insert a form-feed character.</li></ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class=\"delimiter-dropdown dropdown dropdown-relative dropdown-tip dropdown-index\">
<ul class=\"dropdown-menu\">
<li><a href=\"#\">/</a></li>
<li><a href=\"#\">~</a></li>
<li><a href=\"#\">@</a></li>
<li><a href=\"#\">;</a></li>
<li><a href=\"#\">%</a></li>
<li><a href=\"#\">`</a></li>
</ul>
</div>
<div id=\"dimmer\"></div>
<div id=\"dimmer-popup\"></div>
<div id=\"match-tooltip\" class=\"arrow-box monospace\" style=\"display: none;\">
<div id=\"tooltip-contents\"></div>
<div id=\"match-tooltip-tip\" class=\"arrow-box-tip\"></div>
</div>
<script async=\"\" src=\"//www.google-analytics.com/analytics.js\"></script><script src=\"/js/underscore-min.1436803505.js.pagespeed.jm.ItwX38EOq5.js\" type=\"text/javascript\"></script>
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\" type=\"text/javascript\"></script>
<script src=\"/js/jquery.tools.1436803505.js.pagespeed.jm.DNWAfAhpC9.js\" type=\"text/javascript\"></script>
<script src=\"/js/general.regex101.1436803508.js+colorParser.regex101.1436803520.js.pagespeed.jc.KIXmW6Lahv.js\"></script><script>eval(mod_pagespeed_CRbzq1jVsW);</script>
<script>eval(mod_pagespeed_LD3wbsjGh7);</script>
<script src=\"/js/explainer.regex101.1436803512.js.pagespeed.jm.noh2fCvD58.js\" type=\"text/javascript\"></script>
<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>
<script src=\"/js/common.regex101.1436803517.js+matcher.regex101.1436803513.js.pagespeed.jc.GiUY2OHBQ4.js\"></script><script>eval(mod_pagespeed_0R2l5qkFIe);</script>
<script>eval(mod_pagespeed_$$8DO5TKyQ);</script>
</body></html>";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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 Rust, please visit: https://docs.rs/regex/latest/regex/