jdk/src/java.base/share/classes/java/util/regex/Pattern.java
changeset 44846 b3f9f5bf40b2
parent 44844 b2b4d98404ba
child 45124 144479e89cdb
equal deleted inserted replaced
44845:3b829f6434d8 44846:b3f9f5bf40b2
    80  * <h3><a id="sum">Summary of regular-expression constructs</a></h3>
    80  * <h3><a id="sum">Summary of regular-expression constructs</a></h3>
    81  *
    81  *
    82  * <table border="0" cellpadding="1" cellspacing="0"
    82  * <table border="0" cellpadding="1" cellspacing="0"
    83  *  summary="Regular expression constructs, and what they match">
    83  *  summary="Regular expression constructs, and what they match">
    84  *
    84  *
    85  * <tr align="left">
    85  * <tr style="text-align:left">
    86  * <th align="left" id="construct">Construct</th>
    86  * <th style="text-align:left" id="construct">Construct</th>
    87  * <th align="left" id="matches">Matches</th>
    87  * <th style="text-align:left" id="matches">Matches</th>
    88  * </tr>
    88  * </tr>
    89  *
    89  *
    90  * <tr><th>&nbsp;</th></tr>
    90  * <tr><th>&nbsp;</th></tr>
    91  * <tr align="left"><th colspan="2" id="characters">Characters</th></tr>
    91  * <tr style="text-align:left"><th colspan="2" id="characters">Characters</th></tr>
    92  *
    92  *
    93  * <tr><td valign="top" headers="construct characters"><i>x</i></td>
    93  * <tr><td style="vertical-align:top" headers="construct characters"><i>x</i></td>
    94  *     <td headers="matches">The character <i>x</i></td></tr>
    94  *     <td headers="matches">The character <i>x</i></td></tr>
    95  * <tr><td valign="top" headers="construct characters">{@code \\}</td>
    95  * <tr><td style="vertical-align:top" headers="construct characters">{@code \\}</td>
    96  *     <td headers="matches">The backslash character</td></tr>
    96  *     <td headers="matches">The backslash character</td></tr>
    97  * <tr><td valign="top" headers="construct characters">{@code \0}<i>n</i></td>
    97  * <tr><td style="vertical-align:top" headers="construct characters">{@code \0}<i>n</i></td>
    98  *     <td headers="matches">The character with octal value {@code 0}<i>n</i>
    98  *     <td headers="matches">The character with octal value {@code 0}<i>n</i>
    99  *         (0&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;7)</td></tr>
    99  *         (0&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;7)</td></tr>
   100  * <tr><td valign="top" headers="construct characters">{@code \0}<i>nn</i></td>
   100  * <tr><td style="vertical-align:top" headers="construct characters">{@code \0}<i>nn</i></td>
   101  *     <td headers="matches">The character with octal value {@code 0}<i>nn</i>
   101  *     <td headers="matches">The character with octal value {@code 0}<i>nn</i>
   102  *         (0&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;7)</td></tr>
   102  *         (0&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;7)</td></tr>
   103  * <tr><td valign="top" headers="construct characters">{@code \0}<i>mnn</i></td>
   103  * <tr><td style="vertical-align:top" headers="construct characters">{@code \0}<i>mnn</i></td>
   104  *     <td headers="matches">The character with octal value {@code 0}<i>mnn</i>
   104  *     <td headers="matches">The character with octal value {@code 0}<i>mnn</i>
   105  *         (0&nbsp;{@code <=}&nbsp;<i>m</i>&nbsp;{@code <=}&nbsp;3,
   105  *         (0&nbsp;{@code <=}&nbsp;<i>m</i>&nbsp;{@code <=}&nbsp;3,
   106  *         0&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;7)</td></tr>
   106  *         0&nbsp;{@code <=}&nbsp;<i>n</i>&nbsp;{@code <=}&nbsp;7)</td></tr>
   107  * <tr><td valign="top" headers="construct characters">{@code \x}<i>hh</i></td>
   107  * <tr><td style="vertical-align:top" headers="construct characters">{@code \x}<i>hh</i></td>
   108  *     <td headers="matches">The character with hexadecimal&nbsp;value&nbsp;{@code 0x}<i>hh</i></td></tr>
   108  *     <td headers="matches">The character with hexadecimal&nbsp;value&nbsp;{@code 0x}<i>hh</i></td></tr>
   109  * <tr><td valign="top" headers="construct characters"><code>&#92;u</code><i>hhhh</i></td>
   109  * <tr><td style="vertical-align:top" headers="construct characters"><code>&#92;u</code><i>hhhh</i></td>
   110  *     <td headers="matches">The character with hexadecimal&nbsp;value&nbsp;{@code 0x}<i>hhhh</i></td></tr>
   110  *     <td headers="matches">The character with hexadecimal&nbsp;value&nbsp;{@code 0x}<i>hhhh</i></td></tr>
   111  * <tr><td valign="top" headers="construct characters"><code>&#92;x</code><i>{h...h}</i></td>
   111  * <tr><td style="vertical-align:top" headers="construct characters"><code>&#92;x</code><i>{h...h}</i></td>
   112  *     <td headers="matches">The character with hexadecimal&nbsp;value&nbsp;{@code 0x}<i>h...h</i>
   112  *     <td headers="matches">The character with hexadecimal&nbsp;value&nbsp;{@code 0x}<i>h...h</i>
   113  *         ({@link java.lang.Character#MIN_CODE_POINT Character.MIN_CODE_POINT}
   113  *         ({@link java.lang.Character#MIN_CODE_POINT Character.MIN_CODE_POINT}
   114  *         &nbsp;&lt;=&nbsp;{@code 0x}<i>h...h</i>&nbsp;&lt;=&nbsp;
   114  *         &nbsp;&lt;=&nbsp;{@code 0x}<i>h...h</i>&nbsp;&lt;=&nbsp;
   115  *          {@link java.lang.Character#MAX_CODE_POINT Character.MAX_CODE_POINT})</td></tr>
   115  *          {@link java.lang.Character#MAX_CODE_POINT Character.MAX_CODE_POINT})</td></tr>
   116  * <tr><td valign="top" headers="construct characters"><code>&#92;N{</code><i>name</i><code>}</code></td>
   116  * <tr><td style="vertical-align:top" headers="construct characters"><code>&#92;N{</code><i>name</i><code>}</code></td>
   117  *     <td headers="matches">The character with Unicode character name <i>'name'</i></td></tr>
   117  *     <td headers="matches">The character with Unicode character name <i>'name'</i></td></tr>
   118  * <tr><td valign="top" headers="matches">{@code \t}</td>
   118  * <tr><td style="vertical-align:top" headers="matches">{@code \t}</td>
   119  *     <td headers="matches">The tab character (<code>'&#92;u0009'</code>)</td></tr>
   119  *     <td headers="matches">The tab character (<code>'&#92;u0009'</code>)</td></tr>
   120  * <tr><td valign="top" headers="construct characters">{@code \n}</td>
   120  * <tr><td style="vertical-align:top" headers="construct characters">{@code \n}</td>
   121  *     <td headers="matches">The newline (line feed) character (<code>'&#92;u000A'</code>)</td></tr>
   121  *     <td headers="matches">The newline (line feed) character (<code>'&#92;u000A'</code>)</td></tr>
   122  * <tr><td valign="top" headers="construct characters">{@code \r}</td>
   122  * <tr><td style="vertical-align:top" headers="construct characters">{@code \r}</td>
   123  *     <td headers="matches">The carriage-return character (<code>'&#92;u000D'</code>)</td></tr>
   123  *     <td headers="matches">The carriage-return character (<code>'&#92;u000D'</code>)</td></tr>
   124  * <tr><td valign="top" headers="construct characters">{@code \f}</td>
   124  * <tr><td style="vertical-align:top" headers="construct characters">{@code \f}</td>
   125  *     <td headers="matches">The form-feed character (<code>'&#92;u000C'</code>)</td></tr>
   125  *     <td headers="matches">The form-feed character (<code>'&#92;u000C'</code>)</td></tr>
   126  * <tr><td valign="top" headers="construct characters">{@code \a}</td>
   126  * <tr><td style="vertical-align:top" headers="construct characters">{@code \a}</td>
   127  *     <td headers="matches">The alert (bell) character (<code>'&#92;u0007'</code>)</td></tr>
   127  *     <td headers="matches">The alert (bell) character (<code>'&#92;u0007'</code>)</td></tr>
   128  * <tr><td valign="top" headers="construct characters">{@code \e}</td>
   128  * <tr><td style="vertical-align:top" headers="construct characters">{@code \e}</td>
   129  *     <td headers="matches">The escape character (<code>'&#92;u001B'</code>)</td></tr>
   129  *     <td headers="matches">The escape character (<code>'&#92;u001B'</code>)</td></tr>
   130  * <tr><td valign="top" headers="construct characters">{@code \c}<i>x</i></td>
   130  * <tr><td style="vertical-align:top" headers="construct characters">{@code \c}<i>x</i></td>
   131  *     <td headers="matches">The control character corresponding to <i>x</i></td></tr>
   131  *     <td headers="matches">The control character corresponding to <i>x</i></td></tr>
   132  *
   132  *
   133  * <tr><th>&nbsp;</th></tr>
   133  * <tr><th>&nbsp;</th></tr>
   134  * <tr align="left"><th colspan="2" id="classes">Character classes</th></tr>
   134  * <tr style="text-align:left"><th colspan="2" id="classes">Character classes</th></tr>
   135  *
   135  *
   136  * <tr><td valign="top" headers="construct classes">{@code [abc]}</td>
   136  * <tr><td style="vertical-align:top" headers="construct classes">{@code [abc]}</td>
   137  *     <td headers="matches">{@code a}, {@code b}, or {@code c} (simple class)</td></tr>
   137  *     <td headers="matches">{@code a}, {@code b}, or {@code c} (simple class)</td></tr>
   138  * <tr><td valign="top" headers="construct classes">{@code [^abc]}</td>
   138  * <tr><td style="vertical-align:top" headers="construct classes">{@code [^abc]}</td>
   139  *     <td headers="matches">Any character except {@code a}, {@code b}, or {@code c} (negation)</td></tr>
   139  *     <td headers="matches">Any character except {@code a}, {@code b}, or {@code c} (negation)</td></tr>
   140  * <tr><td valign="top" headers="construct classes">{@code [a-zA-Z]}</td>
   140  * <tr><td style="vertical-align:top" headers="construct classes">{@code [a-zA-Z]}</td>
   141  *     <td headers="matches">{@code a} through {@code z}
   141  *     <td headers="matches">{@code a} through {@code z}
   142  *         or {@code A} through {@code Z}, inclusive (range)</td></tr>
   142  *         or {@code A} through {@code Z}, inclusive (range)</td></tr>
   143  * <tr><td valign="top" headers="construct classes">{@code [a-d[m-p]]}</td>
   143  * <tr><td style="vertical-align:top" headers="construct classes">{@code [a-d[m-p]]}</td>
   144  *     <td headers="matches">{@code a} through {@code d},
   144  *     <td headers="matches">{@code a} through {@code d},
   145  *      or {@code m} through {@code p}: {@code [a-dm-p]} (union)</td></tr>
   145  *      or {@code m} through {@code p}: {@code [a-dm-p]} (union)</td></tr>
   146  * <tr><td valign="top" headers="construct classes">{@code [a-z&&[def]]}</td>
   146  * <tr><td style="vertical-align:top" headers="construct classes">{@code [a-z&&[def]]}</td>
   147  *     <td headers="matches">{@code d}, {@code e}, or {@code f} (intersection)</tr>
   147  *     <td headers="matches">{@code d}, {@code e}, or {@code f} (intersection)</tr>
   148  * <tr><td valign="top" headers="construct classes">{@code [a-z&&[^bc]]}</td>
   148  * <tr><td style="vertical-align:top" headers="construct classes">{@code [a-z&&[^bc]]}</td>
   149  *     <td headers="matches">{@code a} through {@code z},
   149  *     <td headers="matches">{@code a} through {@code z},
   150  *         except for {@code b} and {@code c}: {@code [ad-z]} (subtraction)</td></tr>
   150  *         except for {@code b} and {@code c}: {@code [ad-z]} (subtraction)</td></tr>
   151  * <tr><td valign="top" headers="construct classes">{@code [a-z&&[^m-p]]}</td>
   151  * <tr><td style="vertical-align:top" headers="construct classes">{@code [a-z&&[^m-p]]}</td>
   152  *     <td headers="matches">{@code a} through {@code z},
   152  *     <td headers="matches">{@code a} through {@code z},
   153  *          and not {@code m} through {@code p}: {@code [a-lq-z]}(subtraction)</td></tr>
   153  *          and not {@code m} through {@code p}: {@code [a-lq-z]}(subtraction)</td></tr>
   154  * <tr><th>&nbsp;</th></tr>
   154  * <tr><th>&nbsp;</th></tr>
   155  *
   155  *
   156  * <tr align="left"><th colspan="2" id="predef">Predefined character classes</th></tr>
   156  * <tr style="text-align:left"><th colspan="2" id="predef">Predefined character classes</th></tr>
   157  *
   157  *
   158  * <tr><td valign="top" headers="construct predef">{@code .}</td>
   158  * <tr><td style="vertical-align:top" headers="construct predef">{@code .}</td>
   159  *     <td headers="matches">Any character (may or may not match <a href="#lt">line terminators</a>)</td></tr>
   159  *     <td headers="matches">Any character (may or may not match <a href="#lt">line terminators</a>)</td></tr>
   160  * <tr><td valign="top" headers="construct predef">{@code \d}</td>
   160  * <tr><td style="vertical-align:top" headers="construct predef">{@code \d}</td>
   161  *     <td headers="matches">A digit: {@code [0-9]}</td></tr>
   161  *     <td headers="matches">A digit: {@code [0-9]}</td></tr>
   162  * <tr><td valign="top" headers="construct predef">{@code \D}</td>
   162  * <tr><td style="vertical-align:top" headers="construct predef">{@code \D}</td>
   163  *     <td headers="matches">A non-digit: {@code [^0-9]}</td></tr>
   163  *     <td headers="matches">A non-digit: {@code [^0-9]}</td></tr>
   164  * <tr><td valign="top" headers="construct predef">{@code \h}</td>
   164  * <tr><td style="vertical-align:top" headers="construct predef">{@code \h}</td>
   165  *     <td headers="matches">A horizontal whitespace character:
   165  *     <td headers="matches">A horizontal whitespace character:
   166  *     <code>[ \t\xA0&#92;u1680&#92;u180e&#92;u2000-&#92;u200a&#92;u202f&#92;u205f&#92;u3000]</code></td></tr>
   166  *     <code>[ \t\xA0&#92;u1680&#92;u180e&#92;u2000-&#92;u200a&#92;u202f&#92;u205f&#92;u3000]</code></td></tr>
   167  * <tr><td valign="top" headers="construct predef">{@code \H}</td>
   167  * <tr><td style="vertical-align:top" headers="construct predef">{@code \H}</td>
   168  *     <td headers="matches">A non-horizontal whitespace character: {@code [^\h]}</td></tr>
   168  *     <td headers="matches">A non-horizontal whitespace character: {@code [^\h]}</td></tr>
   169  * <tr><td valign="top" headers="construct predef">{@code \s}</td>
   169  * <tr><td style="vertical-align:top" headers="construct predef">{@code \s}</td>
   170  *     <td headers="matches">A whitespace character: {@code [ \t\n\x0B\f\r]}</td></tr>
   170  *     <td headers="matches">A whitespace character: {@code [ \t\n\x0B\f\r]}</td></tr>
   171  * <tr><td valign="top" headers="construct predef">{@code \S}</td>
   171  * <tr><td style="vertical-align:top" headers="construct predef">{@code \S}</td>
   172  *     <td headers="matches">A non-whitespace character: {@code [^\s]}</td></tr>
   172  *     <td headers="matches">A non-whitespace character: {@code [^\s]}</td></tr>
   173  * <tr><td valign="top" headers="construct predef">{@code \v}</td>
   173  * <tr><td style="vertical-align:top" headers="construct predef">{@code \v}</td>
   174  *     <td headers="matches">A vertical whitespace character: <code>[\n\x0B\f\r\x85&#92;u2028&#92;u2029]</code>
   174  *     <td headers="matches">A vertical whitespace character: <code>[\n\x0B\f\r\x85&#92;u2028&#92;u2029]</code>
   175  *     </td></tr>
   175  *     </td></tr>
   176  * <tr><td valign="top" headers="construct predef">{@code \V}</td>
   176  * <tr><td style="vertical-align:top" headers="construct predef">{@code \V}</td>
   177  *     <td headers="matches">A non-vertical whitespace character: {@code [^\v]}</td></tr>
   177  *     <td headers="matches">A non-vertical whitespace character: {@code [^\v]}</td></tr>
   178  * <tr><td valign="top" headers="construct predef">{@code \w}</td>
   178  * <tr><td style="vertical-align:top" headers="construct predef">{@code \w}</td>
   179  *     <td headers="matches">A word character: {@code [a-zA-Z_0-9]}</td></tr>
   179  *     <td headers="matches">A word character: {@code [a-zA-Z_0-9]}</td></tr>
   180  * <tr><td valign="top" headers="construct predef">{@code \W}</td>
   180  * <tr><td style="vertical-align:top" headers="construct predef">{@code \W}</td>
   181  *     <td headers="matches">A non-word character: {@code [^\w]}</td></tr>
   181  *     <td headers="matches">A non-word character: {@code [^\w]}</td></tr>
   182  * <tr><th>&nbsp;</th></tr>
   182  * <tr><th>&nbsp;</th></tr>
   183  * <tr align="left"><th colspan="2" id="posix"><b>POSIX character classes (US-ASCII only)</b></th></tr>
   183  * <tr style="text-align:left"><th colspan="2" id="posix"><b>POSIX character classes (US-ASCII only)</b></th></tr>
   184  *
   184  *
   185  * <tr><td valign="top" headers="construct posix">{@code \p{Lower}}</td>
   185  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Lower}}</td>
   186  *     <td headers="matches">A lower-case alphabetic character: {@code [a-z]}</td></tr>
   186  *     <td headers="matches">A lower-case alphabetic character: {@code [a-z]}</td></tr>
   187  * <tr><td valign="top" headers="construct posix">{@code \p{Upper}}</td>
   187  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Upper}}</td>
   188  *     <td headers="matches">An upper-case alphabetic character:{@code [A-Z]}</td></tr>
   188  *     <td headers="matches">An upper-case alphabetic character:{@code [A-Z]}</td></tr>
   189  * <tr><td valign="top" headers="construct posix">{@code \p{ASCII}}</td>
   189  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{ASCII}}</td>
   190  *     <td headers="matches">All ASCII:{@code [\x00-\x7F]}</td></tr>
   190  *     <td headers="matches">All ASCII:{@code [\x00-\x7F]}</td></tr>
   191  * <tr><td valign="top" headers="construct posix">{@code \p{Alpha}}</td>
   191  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Alpha}}</td>
   192  *     <td headers="matches">An alphabetic character:{@code [\p{Lower}\p{Upper}]}</td></tr>
   192  *     <td headers="matches">An alphabetic character:{@code [\p{Lower}\p{Upper}]}</td></tr>
   193  * <tr><td valign="top" headers="construct posix">{@code \p{Digit}}</td>
   193  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Digit}}</td>
   194  *     <td headers="matches">A decimal digit: {@code [0-9]}</td></tr>
   194  *     <td headers="matches">A decimal digit: {@code [0-9]}</td></tr>
   195  * <tr><td valign="top" headers="construct posix">{@code \p{Alnum}}</td>
   195  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Alnum}}</td>
   196  *     <td headers="matches">An alphanumeric character:{@code [\p{Alpha}\p{Digit}]}</td></tr>
   196  *     <td headers="matches">An alphanumeric character:{@code [\p{Alpha}\p{Digit}]}</td></tr>
   197  * <tr><td valign="top" headers="construct posix">{@code \p{Punct}}</td>
   197  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Punct}}</td>
   198  *     <td headers="matches">Punctuation: One of {@code !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~}</td></tr>
   198  *     <td headers="matches">Punctuation: One of {@code !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~}</td></tr>
   199  *     <!-- {@code [\!"#\$%&'\(\)\*\+,\-\./:;\<=\>\?@\[\\\]\^_`\{\|\}~]}
   199  *     <!-- {@code [\!"#\$%&'\(\)\*\+,\-\./:;\<=\>\?@\[\\\]\^_`\{\|\}~]}
   200  *          {@code [\X21-\X2F\X31-\X40\X5B-\X60\X7B-\X7E]} -->
   200  *          {@code [\X21-\X2F\X31-\X40\X5B-\X60\X7B-\X7E]} -->
   201  * <tr><td valign="top" headers="construct posix">{@code \p{Graph}}</td>
   201  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Graph}}</td>
   202  *     <td headers="matches">A visible character: {@code [\p{Alnum}\p{Punct}]}</td></tr>
   202  *     <td headers="matches">A visible character: {@code [\p{Alnum}\p{Punct}]}</td></tr>
   203  * <tr><td valign="top" headers="construct posix">{@code \p{Print}}</td>
   203  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Print}}</td>
   204  *     <td headers="matches">A printable character: {@code [\p{Graph}\x20]}</td></tr>
   204  *     <td headers="matches">A printable character: {@code [\p{Graph}\x20]}</td></tr>
   205  * <tr><td valign="top" headers="construct posix">{@code \p{Blank}}</td>
   205  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Blank}}</td>
   206  *     <td headers="matches">A space or a tab: {@code [ \t]}</td></tr>
   206  *     <td headers="matches">A space or a tab: {@code [ \t]}</td></tr>
   207  * <tr><td valign="top" headers="construct posix">{@code \p{Cntrl}}</td>
   207  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Cntrl}}</td>
   208  *     <td headers="matches">A control character: {@code [\x00-\x1F\x7F]}</td></tr>
   208  *     <td headers="matches">A control character: {@code [\x00-\x1F\x7F]}</td></tr>
   209  * <tr><td valign="top" headers="construct posix">{@code \p{XDigit}}</td>
   209  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{XDigit}}</td>
   210  *     <td headers="matches">A hexadecimal digit: {@code [0-9a-fA-F]}</td></tr>
   210  *     <td headers="matches">A hexadecimal digit: {@code [0-9a-fA-F]}</td></tr>
   211  * <tr><td valign="top" headers="construct posix">{@code \p{Space}}</td>
   211  * <tr><td style="vertical-align:top" headers="construct posix">{@code \p{Space}}</td>
   212  *     <td headers="matches">A whitespace character: {@code [ \t\n\x0B\f\r]}</td></tr>
   212  *     <td headers="matches">A whitespace character: {@code [ \t\n\x0B\f\r]}</td></tr>
   213  *
   213  *
   214  * <tr><th>&nbsp;</th></tr>
   214  * <tr><th>&nbsp;</th></tr>
   215  * <tr align="left"><th colspan="2">java.lang.Character classes (simple <a href="#jcc">java character type</a>)</th></tr>
   215  * <tr style="text-align:left"><th colspan="2">java.lang.Character classes (simple <a href="#jcc">java character type</a>)</th></tr>
   216  *
   216  *
   217  * <tr><td valign="top">{@code \p{javaLowerCase}}</td>
   217  * <tr><td style="vertical-align:top">{@code \p{javaLowerCase}}</td>
   218  *     <td>Equivalent to java.lang.Character.isLowerCase()</td></tr>
   218  *     <td>Equivalent to java.lang.Character.isLowerCase()</td></tr>
   219  * <tr><td valign="top">{@code \p{javaUpperCase}}</td>
   219  * <tr><td style="vertical-align:top">{@code \p{javaUpperCase}}</td>
   220  *     <td>Equivalent to java.lang.Character.isUpperCase()</td></tr>
   220  *     <td>Equivalent to java.lang.Character.isUpperCase()</td></tr>
   221  * <tr><td valign="top">{@code \p{javaWhitespace}}</td>
   221  * <tr><td style="vertical-align:top">{@code \p{javaWhitespace}}</td>
   222  *     <td>Equivalent to java.lang.Character.isWhitespace()</td></tr>
   222  *     <td>Equivalent to java.lang.Character.isWhitespace()</td></tr>
   223  * <tr><td valign="top">{@code \p{javaMirrored}}</td>
   223  * <tr><td style="vertical-align:top">{@code \p{javaMirrored}}</td>
   224  *     <td>Equivalent to java.lang.Character.isMirrored()</td></tr>
   224  *     <td>Equivalent to java.lang.Character.isMirrored()</td></tr>
   225  *
   225  *
   226  * <tr><th>&nbsp;</th></tr>
   226  * <tr><th>&nbsp;</th></tr>
   227  * <tr align="left"><th colspan="2" id="unicode">Classes for Unicode scripts, blocks, categories and binary properties</th></tr>
   227  * <tr style="text-align:left"><th colspan="2" id="unicode">Classes for Unicode scripts, blocks, categories and binary properties</th></tr>
   228  * <tr><td valign="top" headers="construct unicode">{@code \p{IsLatin}}</td>
   228  * <tr><td style="vertical-align:top" headers="construct unicode">{@code \p{IsLatin}}</td>
   229  *     <td headers="matches">A Latin&nbsp;script character (<a href="#usc">script</a>)</td></tr>
   229  *     <td headers="matches">A Latin&nbsp;script character (<a href="#usc">script</a>)</td></tr>
   230  * <tr><td valign="top" headers="construct unicode">{@code \p{InGreek}}</td>
   230  * <tr><td style="vertical-align:top" headers="construct unicode">{@code \p{InGreek}}</td>
   231  *     <td headers="matches">A character in the Greek&nbsp;block (<a href="#ubc">block</a>)</td></tr>
   231  *     <td headers="matches">A character in the Greek&nbsp;block (<a href="#ubc">block</a>)</td></tr>
   232  * <tr><td valign="top" headers="construct unicode">{@code \p{Lu}}</td>
   232  * <tr><td style="vertical-align:top" headers="construct unicode">{@code \p{Lu}}</td>
   233  *     <td headers="matches">An uppercase letter (<a href="#ucc">category</a>)</td></tr>
   233  *     <td headers="matches">An uppercase letter (<a href="#ucc">category</a>)</td></tr>
   234  * <tr><td valign="top" headers="construct unicode">{@code \p{IsAlphabetic}}</td>
   234  * <tr><td style="vertical-align:top" headers="construct unicode">{@code \p{IsAlphabetic}}</td>
   235  *     <td headers="matches">An alphabetic character (<a href="#ubpc">binary property</a>)</td></tr>
   235  *     <td headers="matches">An alphabetic character (<a href="#ubpc">binary property</a>)</td></tr>
   236  * <tr><td valign="top" headers="construct unicode">{@code \p{Sc}}</td>
   236  * <tr><td style="vertical-align:top" headers="construct unicode">{@code \p{Sc}}</td>
   237  *     <td headers="matches">A currency symbol</td></tr>
   237  *     <td headers="matches">A currency symbol</td></tr>
   238  * <tr><td valign="top" headers="construct unicode">{@code \P{InGreek}}</td>
   238  * <tr><td style="vertical-align:top" headers="construct unicode">{@code \P{InGreek}}</td>
   239  *     <td headers="matches">Any character except one in the Greek block (negation)</td></tr>
   239  *     <td headers="matches">Any character except one in the Greek block (negation)</td></tr>
   240  * <tr><td valign="top" headers="construct unicode">{@code [\p{L}&&[^\p{Lu}]]}</td>
   240  * <tr><td style="vertical-align:top" headers="construct unicode">{@code [\p{L}&&[^\p{Lu}]]}</td>
   241  *     <td headers="matches">Any letter except an uppercase letter (subtraction)</td></tr>
   241  *     <td headers="matches">Any letter except an uppercase letter (subtraction)</td></tr>
   242  *
   242  *
   243  * <tr><th>&nbsp;</th></tr>
   243  * <tr><th>&nbsp;</th></tr>
   244  * <tr align="left"><th colspan="2" id="bounds">Boundary matchers</th></tr>
   244  * <tr style="text-align:left"><th colspan="2" id="bounds">Boundary matchers</th></tr>
   245  *
   245  *
   246  * <tr><td valign="top" headers="construct bounds">{@code ^}</td>
   246  * <tr><td style="vertical-align:top" headers="construct bounds">{@code ^}</td>
   247  *     <td headers="matches">The beginning of a line</td></tr>
   247  *     <td headers="matches">The beginning of a line</td></tr>
   248  * <tr><td valign="top" headers="construct bounds">{@code $}</td>
   248  * <tr><td style="vertical-align:top" headers="construct bounds">{@code $}</td>
   249  *     <td headers="matches">The end of a line</td></tr>
   249  *     <td headers="matches">The end of a line</td></tr>
   250  * <tr><td valign="top" headers="construct bounds">{@code \b}</td>
   250  * <tr><td style="vertical-align:top" headers="construct bounds">{@code \b}</td>
   251  *     <td headers="matches">A word boundary</td></tr>
   251  *     <td headers="matches">A word boundary</td></tr>
   252  * <tr><td valign="top" headers="construct bounds">{@code \b{g}}</td>
   252  * <tr><td style="vertical-align:top" headers="construct bounds">{@code \b{g}}</td>
   253  *     <td headers="matches">A Unicode extended grapheme cluster boundary</td></tr>
   253  *     <td headers="matches">A Unicode extended grapheme cluster boundary</td></tr>
   254  * <tr><td valign="top" headers="construct bounds">{@code \B}</td>
   254  * <tr><td style="vertical-align:top" headers="construct bounds">{@code \B}</td>
   255  *     <td headers="matches">A non-word boundary</td></tr>
   255  *     <td headers="matches">A non-word boundary</td></tr>
   256  * <tr><td valign="top" headers="construct bounds">{@code \A}</td>
   256  * <tr><td style="vertical-align:top" headers="construct bounds">{@code \A}</td>
   257  *     <td headers="matches">The beginning of the input</td></tr>
   257  *     <td headers="matches">The beginning of the input</td></tr>
   258  * <tr><td valign="top" headers="construct bounds">{@code \G}</td>
   258  * <tr><td style="vertical-align:top" headers="construct bounds">{@code \G}</td>
   259  *     <td headers="matches">The end of the previous match</td></tr>
   259  *     <td headers="matches">The end of the previous match</td></tr>
   260  * <tr><td valign="top" headers="construct bounds">{@code \Z}</td>
   260  * <tr><td style="vertical-align:top" headers="construct bounds">{@code \Z}</td>
   261  *     <td headers="matches">The end of the input but for the final
   261  *     <td headers="matches">The end of the input but for the final
   262  *         <a href="#lt">terminator</a>, if&nbsp;any</td></tr>
   262  *         <a href="#lt">terminator</a>, if&nbsp;any</td></tr>
   263  * <tr><td valign="top" headers="construct bounds">{@code \z}</td>
   263  * <tr><td style="vertical-align:top" headers="construct bounds">{@code \z}</td>
   264  *     <td headers="matches">The end of the input</td></tr>
   264  *     <td headers="matches">The end of the input</td></tr>
   265  *
   265  *
   266  * <tr><th>&nbsp;</th></tr>
   266  * <tr><th>&nbsp;</th></tr>
   267  * <tr align="left"><th colspan="2" id="lineending">Linebreak matcher</th></tr>
   267  * <tr style="text-align:left"><th colspan="2" id="lineending">Linebreak matcher</th></tr>
   268  * <tr><td valign="top" headers="construct lineending">{@code \R}</td>
   268  * <tr><td style="vertical-align:top" headers="construct lineending">{@code \R}</td>
   269  *     <td headers="matches">Any Unicode linebreak sequence, is equivalent to
   269  *     <td headers="matches">Any Unicode linebreak sequence, is equivalent to
   270  *     <code>&#92;u000D&#92;u000A|[&#92;u000A&#92;u000B&#92;u000C&#92;u000D&#92;u0085&#92;u2028&#92;u2029]
   270  *     <code>&#92;u000D&#92;u000A|[&#92;u000A&#92;u000B&#92;u000C&#92;u000D&#92;u0085&#92;u2028&#92;u2029]
   271  *     </code></td></tr>
   271  *     </code></td></tr>
   272  *
   272  *
   273  * <tr><th>&nbsp;</th></tr>
   273  * <tr><th>&nbsp;</th></tr>
   274  * <tr align="left"><th colspan="2" id="grapheme">Unicode Extended Grapheme matcher</th></tr>
   274  * <tr style="text-align:left"><th colspan="2" id="grapheme">Unicode Extended Grapheme matcher</th></tr>
   275  * <tr><td valign="top" headers="construct grapheme">{@code \X}</td>
   275  * <tr><td style="vertical-align:top" headers="construct grapheme">{@code \X}</td>
   276  *     <td headers="matches">Any Unicode extended grapheme cluster</td></tr>
   276  *     <td headers="matches">Any Unicode extended grapheme cluster</td></tr>
   277  *
   277  *
   278  * <tr><th>&nbsp;</th></tr>
   278  * <tr><th>&nbsp;</th></tr>
   279  * <tr align="left"><th colspan="2" id="greedy">Greedy quantifiers</th></tr>
   279  * <tr style="text-align:left"><th colspan="2" id="greedy">Greedy quantifiers</th></tr>
   280  *
   280  *
   281  * <tr><td valign="top" headers="construct greedy"><i>X</i>{@code ?}</td>
   281  * <tr><td style="vertical-align:top" headers="construct greedy"><i>X</i>{@code ?}</td>
   282  *     <td headers="matches"><i>X</i>, once or not at all</td></tr>
   282  *     <td headers="matches"><i>X</i>, once or not at all</td></tr>
   283  * <tr><td valign="top" headers="construct greedy"><i>X</i>{@code *}</td>
   283  * <tr><td style="vertical-align:top" headers="construct greedy"><i>X</i>{@code *}</td>
   284  *     <td headers="matches"><i>X</i>, zero or more times</td></tr>
   284  *     <td headers="matches"><i>X</i>, zero or more times</td></tr>
   285  * <tr><td valign="top" headers="construct greedy"><i>X</i>{@code +}</td>
   285  * <tr><td style="vertical-align:top" headers="construct greedy"><i>X</i>{@code +}</td>
   286  *     <td headers="matches"><i>X</i>, one or more times</td></tr>
   286  *     <td headers="matches"><i>X</i>, one or more times</td></tr>
   287  * <tr><td valign="top" headers="construct greedy"><i>X</i><code>{</code><i>n</i><code>}</code></td>
   287  * <tr><td style="vertical-align:top" headers="construct greedy"><i>X</i><code>{</code><i>n</i><code>}</code></td>
   288  *     <td headers="matches"><i>X</i>, exactly <i>n</i> times</td></tr>
   288  *     <td headers="matches"><i>X</i>, exactly <i>n</i> times</td></tr>
   289  * <tr><td valign="top" headers="construct greedy"><i>X</i><code>{</code><i>n</i>{@code ,}}</td>
   289  * <tr><td style="vertical-align:top" headers="construct greedy"><i>X</i><code>{</code><i>n</i>{@code ,}}</td>
   290  *     <td headers="matches"><i>X</i>, at least <i>n</i> times</td></tr>
   290  *     <td headers="matches"><i>X</i>, at least <i>n</i> times</td></tr>
   291  * <tr><td valign="top" headers="construct greedy"><i>X</i><code>{</code><i>n</i>{@code ,}<i>m</i><code>}</code></td>
   291  * <tr><td style="vertical-align:top" headers="construct greedy"><i>X</i><code>{</code><i>n</i>{@code ,}<i>m</i><code>}</code></td>
   292  *     <td headers="matches"><i>X</i>, at least <i>n</i> but not more than <i>m</i> times</td></tr>
   292  *     <td headers="matches"><i>X</i>, at least <i>n</i> but not more than <i>m</i> times</td></tr>
   293  *
   293  *
   294  * <tr><th>&nbsp;</th></tr>
   294  * <tr><th>&nbsp;</th></tr>
   295  * <tr align="left"><th colspan="2" id="reluc">Reluctant quantifiers</th></tr>
   295  * <tr style="text-align:left"><th colspan="2" id="reluc">Reluctant quantifiers</th></tr>
   296  *
   296  *
   297  * <tr><td valign="top" headers="construct reluc"><i>X</i>{@code ??}</td>
   297  * <tr><td style="vertical-align:top" headers="construct reluc"><i>X</i>{@code ??}</td>
   298  *     <td headers="matches"><i>X</i>, once or not at all</td></tr>
   298  *     <td headers="matches"><i>X</i>, once or not at all</td></tr>
   299  * <tr><td valign="top" headers="construct reluc"><i>X</i>{@code *?}</td>
   299  * <tr><td style="vertical-align:top" headers="construct reluc"><i>X</i>{@code *?}</td>
   300  *     <td headers="matches"><i>X</i>, zero or more times</td></tr>
   300  *     <td headers="matches"><i>X</i>, zero or more times</td></tr>
   301  * <tr><td valign="top" headers="construct reluc"><i>X</i>{@code +?}</td>
   301  * <tr><td style="vertical-align:top" headers="construct reluc"><i>X</i>{@code +?}</td>
   302  *     <td headers="matches"><i>X</i>, one or more times</td></tr>
   302  *     <td headers="matches"><i>X</i>, one or more times</td></tr>
   303  * <tr><td valign="top" headers="construct reluc"><i>X</i><code>{</code><i>n</i><code>}?</code></td>
   303  * <tr><td style="vertical-align:top" headers="construct reluc"><i>X</i><code>{</code><i>n</i><code>}?</code></td>
   304  *     <td headers="matches"><i>X</i>, exactly <i>n</i> times</td></tr>
   304  *     <td headers="matches"><i>X</i>, exactly <i>n</i> times</td></tr>
   305  * <tr><td valign="top" headers="construct reluc"><i>X</i><code>{</code><i>n</i><code>,}?</code></td>
   305  * <tr><td style="vertical-align:top" headers="construct reluc"><i>X</i><code>{</code><i>n</i><code>,}?</code></td>
   306  *     <td headers="matches"><i>X</i>, at least <i>n</i> times</td></tr>
   306  *     <td headers="matches"><i>X</i>, at least <i>n</i> times</td></tr>
   307  * <tr><td valign="top" headers="construct reluc"><i>X</i><code>{</code><i>n</i>{@code ,}<i>m</i><code>}?</code></td>
   307  * <tr><td style="vertical-align:top" headers="construct reluc"><i>X</i><code>{</code><i>n</i>{@code ,}<i>m</i><code>}?</code></td>
   308  *     <td headers="matches"><i>X</i>, at least <i>n</i> but not more than <i>m</i> times</td></tr>
   308  *     <td headers="matches"><i>X</i>, at least <i>n</i> but not more than <i>m</i> times</td></tr>
   309  *
   309  *
   310  * <tr><th>&nbsp;</th></tr>
   310  * <tr><th>&nbsp;</th></tr>
   311  * <tr align="left"><th colspan="2" id="poss">Possessive quantifiers</th></tr>
   311  * <tr style="text-align:left"><th colspan="2" id="poss">Possessive quantifiers</th></tr>
   312  *
   312  *
   313  * <tr><td valign="top" headers="construct poss"><i>X</i>{@code ?+}</td>
   313  * <tr><td style="vertical-align:top" headers="construct poss"><i>X</i>{@code ?+}</td>
   314  *     <td headers="matches"><i>X</i>, once or not at all</td></tr>
   314  *     <td headers="matches"><i>X</i>, once or not at all</td></tr>
   315  * <tr><td valign="top" headers="construct poss"><i>X</i>{@code *+}</td>
   315  * <tr><td style="vertical-align:top" headers="construct poss"><i>X</i>{@code *+}</td>
   316  *     <td headers="matches"><i>X</i>, zero or more times</td></tr>
   316  *     <td headers="matches"><i>X</i>, zero or more times</td></tr>
   317  * <tr><td valign="top" headers="construct poss"><i>X</i>{@code ++}</td>
   317  * <tr><td style="vertical-align:top" headers="construct poss"><i>X</i>{@code ++}</td>
   318  *     <td headers="matches"><i>X</i>, one or more times</td></tr>
   318  *     <td headers="matches"><i>X</i>, one or more times</td></tr>
   319  * <tr><td valign="top" headers="construct poss"><i>X</i><code>{</code><i>n</i><code>}+</code></td>
   319  * <tr><td style="vertical-align:top" headers="construct poss"><i>X</i><code>{</code><i>n</i><code>}+</code></td>
   320  *     <td headers="matches"><i>X</i>, exactly <i>n</i> times</td></tr>
   320  *     <td headers="matches"><i>X</i>, exactly <i>n</i> times</td></tr>
   321  * <tr><td valign="top" headers="construct poss"><i>X</i><code>{</code><i>n</i><code>,}+</code></td>
   321  * <tr><td style="vertical-align:top" headers="construct poss"><i>X</i><code>{</code><i>n</i><code>,}+</code></td>
   322  *     <td headers="matches"><i>X</i>, at least <i>n</i> times</td></tr>
   322  *     <td headers="matches"><i>X</i>, at least <i>n</i> times</td></tr>
   323  * <tr><td valign="top" headers="construct poss"><i>X</i><code>{</code><i>n</i>{@code ,}<i>m</i><code>}+</code></td>
   323  * <tr><td style="vertical-align:top" headers="construct poss"><i>X</i><code>{</code><i>n</i>{@code ,}<i>m</i><code>}+</code></td>
   324  *     <td headers="matches"><i>X</i>, at least <i>n</i> but not more than <i>m</i> times</td></tr>
   324  *     <td headers="matches"><i>X</i>, at least <i>n</i> but not more than <i>m</i> times</td></tr>
   325  *
   325  *
   326  * <tr><th>&nbsp;</th></tr>
   326  * <tr><th>&nbsp;</th></tr>
   327  * <tr align="left"><th colspan="2" id="logical">Logical operators</th></tr>
   327  * <tr style="text-align:left"><th colspan="2" id="logical">Logical operators</th></tr>
   328  *
   328  *
   329  * <tr><td valign="top" headers="construct logical"><i>XY</i></td>
   329  * <tr><td style="vertical-align:top" headers="construct logical"><i>XY</i></td>
   330  *     <td headers="matches"><i>X</i> followed by <i>Y</i></td></tr>
   330  *     <td headers="matches"><i>X</i> followed by <i>Y</i></td></tr>
   331  * <tr><td valign="top" headers="construct logical"><i>X</i>{@code |}<i>Y</i></td>
   331  * <tr><td style="vertical-align:top" headers="construct logical"><i>X</i>{@code |}<i>Y</i></td>
   332  *     <td headers="matches">Either <i>X</i> or <i>Y</i></td></tr>
   332  *     <td headers="matches">Either <i>X</i> or <i>Y</i></td></tr>
   333  * <tr><td valign="top" headers="construct logical">{@code (}<i>X</i>{@code )}</td>
   333  * <tr><td style="vertical-align:top" headers="construct logical">{@code (}<i>X</i>{@code )}</td>
   334  *     <td headers="matches">X, as a <a href="#cg">capturing group</a></td></tr>
   334  *     <td headers="matches">X, as a <a href="#cg">capturing group</a></td></tr>
   335  *
   335  *
   336  * <tr><th>&nbsp;</th></tr>
   336  * <tr><th>&nbsp;</th></tr>
   337  * <tr align="left"><th colspan="2" id="backref">Back references</th></tr>
   337  * <tr style="text-align:left"><th colspan="2" id="backref">Back references</th></tr>
   338  *
   338  *
   339  * <tr><td valign="bottom" headers="construct backref">{@code \}<i>n</i></td>
   339  * <tr><td style="vertical-align:bottom" headers="construct backref">{@code \}<i>n</i></td>
   340  *     <td valign="bottom" headers="matches">Whatever the <i>n</i><sup>th</sup>
   340  *     <td style="vertical-align:bottom" headers="matches">Whatever the <i>n</i><sup>th</sup>
   341  *     <a href="#cg">capturing group</a> matched</td></tr>
   341  *     <a href="#cg">capturing group</a> matched</td></tr>
   342  *
   342  *
   343  * <tr><td valign="bottom" headers="construct backref">{@code \}<i>k</i>&lt;<i>name</i>&gt;</td>
   343  * <tr><td style="vertical-align:bottom" headers="construct backref">{@code \}<i>k</i>&lt;<i>name</i>&gt;</td>
   344  *     <td valign="bottom" headers="matches">Whatever the
   344  *     <td style="vertical-align:bottom" headers="matches">Whatever the
   345  *     <a href="#groupname">named-capturing group</a> "name" matched</td></tr>
   345  *     <a href="#groupname">named-capturing group</a> "name" matched</td></tr>
   346  *
   346  *
   347  * <tr><th>&nbsp;</th></tr>
   347  * <tr><th>&nbsp;</th></tr>
   348  * <tr align="left"><th colspan="2" id="quot">Quotation</th></tr>
   348  * <tr style="text-align:left"><th colspan="2" id="quot">Quotation</th></tr>
   349  *
   349  *
   350  * <tr><td valign="top" headers="construct quot">{@code \}</td>
   350  * <tr><td style="vertical-align:top" headers="construct quot">{@code \}</td>
   351  *     <td headers="matches">Nothing, but quotes the following character</td></tr>
   351  *     <td headers="matches">Nothing, but quotes the following character</td></tr>
   352  * <tr><td valign="top" headers="construct quot">{@code \Q}</td>
   352  * <tr><td style="vertical-align:top" headers="construct quot">{@code \Q}</td>
   353  *     <td headers="matches">Nothing, but quotes all characters until {@code \E}</td></tr>
   353  *     <td headers="matches">Nothing, but quotes all characters until {@code \E}</td></tr>
   354  * <tr><td valign="top" headers="construct quot">{@code \E}</td>
   354  * <tr><td style="vertical-align:top" headers="construct quot">{@code \E}</td>
   355  *     <td headers="matches">Nothing, but ends quoting started by {@code \Q}</td></tr>
   355  *     <td headers="matches">Nothing, but ends quoting started by {@code \Q}</td></tr>
   356  *     <!-- Metachars: !$()*+.<>?[\]^{|} -->
   356  *     <!-- Metachars: !$()*+.<>?[\]^{|} -->
   357  *
   357  *
   358  * <tr><th>&nbsp;</th></tr>
   358  * <tr><th>&nbsp;</th></tr>
   359  * <tr align="left"><th colspan="2" id="special">Special constructs (named-capturing and non-capturing)</th></tr>
   359  * <tr style="text-align:left"><th colspan="2" id="special">Special constructs (named-capturing and non-capturing)</th></tr>
   360  *
   360  *
   361  * <tr><td valign="top" headers="construct special"><code>(?&lt;<a href="#groupname">name</a>&gt;</code><i>X</i>{@code )}</td>
   361  * <tr><td style="vertical-align:top" headers="construct special"><code>(?&lt;<a href="#groupname">name</a>&gt;</code><i>X</i>{@code )}</td>
   362  *     <td headers="matches"><i>X</i>, as a named-capturing group</td></tr>
   362  *     <td headers="matches"><i>X</i>, as a named-capturing group</td></tr>
   363  * <tr><td valign="top" headers="construct special">{@code (?:}<i>X</i>{@code )}</td>
   363  * <tr><td style="vertical-align:top" headers="construct special">{@code (?:}<i>X</i>{@code )}</td>
   364  *     <td headers="matches"><i>X</i>, as a non-capturing group</td></tr>
   364  *     <td headers="matches"><i>X</i>, as a non-capturing group</td></tr>
   365  * <tr><td valign="top" headers="construct special"><code>(?idmsuxU-idmsuxU)&nbsp;</code></td>
   365  * <tr><td style="vertical-align:top" headers="construct special"><code>(?idmsuxU-idmsuxU)&nbsp;</code></td>
   366  *     <td headers="matches">Nothing, but turns match flags <a href="#CASE_INSENSITIVE">i</a>
   366  *     <td headers="matches">Nothing, but turns match flags <a href="#CASE_INSENSITIVE">i</a>
   367  * <a href="#UNIX_LINES">d</a> <a href="#MULTILINE">m</a> <a href="#DOTALL">s</a>
   367  * <a href="#UNIX_LINES">d</a> <a href="#MULTILINE">m</a> <a href="#DOTALL">s</a>
   368  * <a href="#UNICODE_CASE">u</a> <a href="#COMMENTS">x</a> <a href="#UNICODE_CHARACTER_CLASS">U</a>
   368  * <a href="#UNICODE_CASE">u</a> <a href="#COMMENTS">x</a> <a href="#UNICODE_CHARACTER_CLASS">U</a>
   369  * on - off</td></tr>
   369  * on - off</td></tr>
   370  * <tr><td valign="top" headers="construct special"><code>(?idmsux-idmsux:</code><i>X</i>{@code )}&nbsp;&nbsp;</td>
   370  * <tr><td style="vertical-align:top" headers="construct special"><code>(?idmsux-idmsux:</code><i>X</i>{@code )}&nbsp;&nbsp;</td>
   371  *     <td headers="matches"><i>X</i>, as a <a href="#cg">non-capturing group</a> with the
   371  *     <td headers="matches"><i>X</i>, as a <a href="#cg">non-capturing group</a> with the
   372  *         given flags <a href="#CASE_INSENSITIVE">i</a> <a href="#UNIX_LINES">d</a>
   372  *         given flags <a href="#CASE_INSENSITIVE">i</a> <a href="#UNIX_LINES">d</a>
   373  * <a href="#MULTILINE">m</a> <a href="#DOTALL">s</a> <a href="#UNICODE_CASE">u</a >
   373  * <a href="#MULTILINE">m</a> <a href="#DOTALL">s</a> <a href="#UNICODE_CASE">u</a >
   374  * <a href="#COMMENTS">x</a> on - off</td></tr>
   374  * <a href="#COMMENTS">x</a> on - off</td></tr>
   375  * <tr><td valign="top" headers="construct special">{@code (?=}<i>X</i>{@code )}</td>
   375  * <tr><td style="vertical-align:top" headers="construct special">{@code (?=}<i>X</i>{@code )}</td>
   376  *     <td headers="matches"><i>X</i>, via zero-width positive lookahead</td></tr>
   376  *     <td headers="matches"><i>X</i>, via zero-width positive lookahead</td></tr>
   377  * <tr><td valign="top" headers="construct special">{@code (?!}<i>X</i>{@code )}</td>
   377  * <tr><td style="vertical-align:top" headers="construct special">{@code (?!}<i>X</i>{@code )}</td>
   378  *     <td headers="matches"><i>X</i>, via zero-width negative lookahead</td></tr>
   378  *     <td headers="matches"><i>X</i>, via zero-width negative lookahead</td></tr>
   379  * <tr><td valign="top" headers="construct special">{@code (?<=}<i>X</i>{@code )}</td>
   379  * <tr><td style="vertical-align:top" headers="construct special">{@code (?<=}<i>X</i>{@code )}</td>
   380  *     <td headers="matches"><i>X</i>, via zero-width positive lookbehind</td></tr>
   380  *     <td headers="matches"><i>X</i>, via zero-width positive lookbehind</td></tr>
   381  * <tr><td valign="top" headers="construct special">{@code (?<!}<i>X</i>{@code )}</td>
   381  * <tr><td style="vertical-align:top" headers="construct special">{@code (?<!}<i>X</i>{@code )}</td>
   382  *     <td headers="matches"><i>X</i>, via zero-width negative lookbehind</td></tr>
   382  *     <td headers="matches"><i>X</i>, via zero-width negative lookbehind</td></tr>
   383  * <tr><td valign="top" headers="construct special">{@code (?>}<i>X</i>{@code )}</td>
   383  * <tr><td style="vertical-align:top" headers="construct special">{@code (?>}<i>X</i>{@code )}</td>
   384  *     <td headers="matches"><i>X</i>, as an independent, non-capturing group</td></tr>
   384  *     <td headers="matches"><i>X</i>, as an independent, non-capturing group</td></tr>
   385  *
   385  *
   386  * </table>
   386  * </table>
   387  *
   387  *
   388  * <hr>
   388  * <hr>
   641  * of <a href="http://www.unicode.org/reports/tr18/"><i>Unicode Regular Expression
   641  * of <a href="http://www.unicode.org/reports/tr18/"><i>Unicode Regular Expression
   642  * </i></a>, when {@link #UNICODE_CHARACTER_CLASS} flag is specified.
   642  * </i></a>, when {@link #UNICODE_CHARACTER_CLASS} flag is specified.
   643  *
   643  *
   644  * <table border="0" cellpadding="1" cellspacing="0"
   644  * <table border="0" cellpadding="1" cellspacing="0"
   645  *  summary="predefined and posix character classes in Unicode mode">
   645  *  summary="predefined and posix character classes in Unicode mode">
   646  * <tr align="left">
   646  * <tr style="text-align:left">
   647  * <th align="left" id="predef_classes">Classes</th>
   647  * <th style="text-align:left" id="predef_classes">Classes</th>
   648  * <th align="left" id="predef_matches">Matches</th>
   648  * <th style="text-align:left" id="predef_matches">Matches</th>
   649  *</tr>
   649  *</tr>
   650  * <tr><td>{@code \p{Lower}}</td>
   650  * <tr><td>{@code \p{Lower}}</td>
   651  *     <td>A lowercase character:{@code \p{IsLowercase}}</td></tr>
   651  *     <td>A lowercase character:{@code \p{IsLowercase}}</td></tr>
   652  * <tr><td>{@code \p{Upper}}</td>
   652  * <tr><td>{@code \p{Upper}}</td>
   653  *     <td>An uppercase character:{@code \p{IsUppercase}}</td></tr>
   653  *     <td>An uppercase character:{@code \p{IsUppercase}}</td></tr>
  1207      * <p> The input {@code "boo:and:foo"}, for example, yields the following
  1207      * <p> The input {@code "boo:and:foo"}, for example, yields the following
  1208      * results with these parameters:
  1208      * results with these parameters:
  1209      *
  1209      *
  1210      * <blockquote><table cellpadding=1 cellspacing=0
  1210      * <blockquote><table cellpadding=1 cellspacing=0
  1211      *              summary="Split examples showing regex, limit, and result">
  1211      *              summary="Split examples showing regex, limit, and result">
  1212      * <tr><th align="left"><i>Regex&nbsp;&nbsp;&nbsp;&nbsp;</i></th>
  1212      * <tr><th style="text-align:left"><i>Regex&nbsp;&nbsp;&nbsp;&nbsp;</i></th>
  1213      *     <th align="left"><i>Limit&nbsp;&nbsp;&nbsp;&nbsp;</i></th>
  1213      *     <th style="text-align:left"><i>Limit&nbsp;&nbsp;&nbsp;&nbsp;</i></th>
  1214      *     <th align="left"><i>Result&nbsp;&nbsp;&nbsp;&nbsp;</i></th></tr>
  1214      *     <th style="text-align:left"><i>Result&nbsp;&nbsp;&nbsp;&nbsp;</i></th></tr>
  1215      * <tr><td align=center>:</td>
  1215      * <tr><td style="text-align:center">:</td>
  1216      *     <td align=center>2</td>
  1216      *     <td style="text-align:center">2</td>
  1217      *     <td>{@code { "boo", "and:foo" }}</td></tr>
  1217      *     <td>{@code { "boo", "and:foo" }}</td></tr>
  1218      * <tr><td align=center>:</td>
  1218      * <tr><td style="text-align:center">:</td>
  1219      *     <td align=center>5</td>
  1219      *     <td style="text-align:center">5</td>
  1220      *     <td>{@code { "boo", "and", "foo" }}</td></tr>
  1220      *     <td>{@code { "boo", "and", "foo" }}</td></tr>
  1221      * <tr><td align=center>:</td>
  1221      * <tr><td style="text-align:center">:</td>
  1222      *     <td align=center>-2</td>
  1222      *     <td style="text-align:center">-2</td>
  1223      *     <td>{@code { "boo", "and", "foo" }}</td></tr>
  1223      *     <td>{@code { "boo", "and", "foo" }}</td></tr>
  1224      * <tr><td align=center>o</td>
  1224      * <tr><td style="text-align:center">o</td>
  1225      *     <td align=center>5</td>
  1225      *     <td style="text-align:center">5</td>
  1226      *     <td>{@code { "b", "", ":and:f", "", "" }}</td></tr>
  1226      *     <td>{@code { "b", "", ":and:f", "", "" }}</td></tr>
  1227      * <tr><td align=center>o</td>
  1227      * <tr><td style="text-align:center">o</td>
  1228      *     <td align=center>-2</td>
  1228      *     <td style="text-align:center">-2</td>
  1229      *     <td>{@code { "b", "", ":and:f", "", "" }}</td></tr>
  1229      *     <td>{@code { "b", "", ":and:f", "", "" }}</td></tr>
  1230      * <tr><td align=center>o</td>
  1230      * <tr><td style="text-align:center">o</td>
  1231      *     <td align=center>0</td>
  1231      *     <td style="text-align:center">0</td>
  1232      *     <td>{@code { "b", "", ":and:f" }}</td></tr>
  1232      *     <td>{@code { "b", "", ":and:f" }}</td></tr>
  1233      * </table></blockquote>
  1233      * </table></blockquote>
  1234      *
  1234      *
  1235      * @param  input
  1235      * @param  input
  1236      *         The character sequence to be split
  1236      *         The character sequence to be split
  1294      * <p> The input {@code "boo:and:foo"}, for example, yields the following
  1294      * <p> The input {@code "boo:and:foo"}, for example, yields the following
  1295      * results with these expressions:
  1295      * results with these expressions:
  1296      *
  1296      *
  1297      * <blockquote><table cellpadding=1 cellspacing=0
  1297      * <blockquote><table cellpadding=1 cellspacing=0
  1298      *              summary="Split examples showing regex and result">
  1298      *              summary="Split examples showing regex and result">
  1299      * <tr><th align="left"><i>Regex&nbsp;&nbsp;&nbsp;&nbsp;</i></th>
  1299      * <tr><th style="text-align:left"><i>Regex&nbsp;&nbsp;&nbsp;&nbsp;</i></th>
  1300      *     <th align="left"><i>Result</i></th></tr>
  1300      *     <th style="text-align:left"><i>Result</i></th></tr>
  1301      * <tr><td align=center>:</td>
  1301      * <tr><td style="text-align:center">:</td>
  1302      *     <td>{@code { "boo", "and", "foo" }}</td></tr>
  1302      *     <td>{@code { "boo", "and", "foo" }}</td></tr>
  1303      * <tr><td align=center>o</td>
  1303      * <tr><td style="text-align:center">o</td>
  1304      *     <td>{@code { "b", "", ":and:f" }}</td></tr>
  1304      *     <td>{@code { "b", "", ":and:f" }}</td></tr>
  1305      * </table></blockquote>
  1305      * </table></blockquote>
  1306      *
  1306      *
  1307      *
  1307      *
  1308      * @param  input
  1308      * @param  input