currentSeq->addComponent(move(cc));
};
+ hi_byte when is_utf8 => {
+ assert(mode.utf8);
+ throwInvalidUtf8();
+ };
+
# Literal character
any => {
addLiteral(currentSeq, *ts, mode);
'\\E' => {
fret;
};
+
+ #unicode chars
+ utf8_2c when is_utf8 => {
+ assert(mode.utf8);
+ currentCls->add(readUtf8CodePoint2c(ts));
+ inCharClassEarly = false;
+ };
+
+ utf8_3c when is_utf8 => {
+ assert(mode.utf8);
+ currentCls->add(readUtf8CodePoint3c(ts));
+ inCharClassEarly = false;
+ };
+
+ utf8_4c when is_utf8 => {
+ assert(mode.utf8);
+ currentCls->add(readUtf8CodePoint4c(ts));
+ inCharClassEarly = false;
+ };
+
+ hi_byte when is_utf8 => {
+ assert(mode.utf8);
+ throwInvalidUtf8();
+ };
+
# Literal character
any => {
currentCls->add(*ts);
145:/abc/8{edit_distance=1} #UTF-8 is disallowed for approximate matching.
146:/(*UTF8)abc/{edit_distance=1} #UTF-8 is disallowed for approximate matching.
147:/\b\BMYBt/s{edit_distance=1} #Pattern can never match.
+148:/\QÀ\Eaaaa/8 #Expression is not valid UTF-8.
+149:/[\QÀ\Eaaaa]/8 #Expression is not valid UTF-8.