$re = '/<\/?[^>]*>/';
$str = '<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>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
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 PHP, please visit: http://php.net/manual/en/ref.pcre.php