<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/119432>119432</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++] Wrong match results for POSIX basic regular expression `[]-_]`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
muellerj2
</td>
</tr>
</table>
<pre>
The basic regular expression `[]-_]` should match all characters in the character range `]-_` (i.e., `]`, `^` and `_`). But libc++ erroneously does not treat `]-_` as a character range and instead matches `]`, `-` and `_`.
Godbolt: https://godbolt.org/z/4WE8PdGPE
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUUkFv2zwM_TX0hYgh03biHHxIvtbFd1qADehuhSwztgrFCkSpWPfrBycZsrWnXWyQFB_fI58WsePM3EK9h_oh0ylOPrSnxM5xeKWs98N7-21i7LVYg4HH5HRA_nEOLGL9jLBW1-bVC9QPsFYok09uwJOOZkLtHJpJB20iB0E7Y5z4nsGg55GvIAvCWiFQY3POgf67pZfv7-BxeaHnYYleLoVtjvsU0dneAO2B9sgh-Jl9EveOg2fB2UeMgXX8a44W1J-ILNB2lsj6JoDlE4vVBw45qB2o3ZMfeu8ilDucYjwLlDugDqgbr4XchxGo-wnUVc-PzWF4OjxmQ1sO23KrM26LTVk29aZQlE2tUoo2Ra0rUlRX2pQDN2VjaM2m2GguMtuSoqqgQhVN3RDlpjmarTrqckOVLpmgUnzS1uXOvZ2W2ZkVSdwWxbYqKXO6ZyeXuxPdlwdEiw9Cu3St-jQKVMpZiXLHiTa6i2P-aKsf8Dn4ebxdPbAkFwWPPuDhy9f_v_-Df7IUXPthgzZOqc-NPwF1C4_bb3UO_pVNBOou4gSou-l7a-lXAAAA__-4Lt4H">