diff --git a/src/regex_impl.cc b/src/regex_impl.cc index 8b6626fb..993119b9 100644 --- a/src/regex_impl.cc +++ b/src/regex_impl.cc @@ -858,6 +858,8 @@ private: else start_chars.map[node->value] = true; } + else + start_chars.accept_other = true; return node->quantifier.allows_none(); case ParsedRegex::AnyChar: for (auto& b : start_chars.map) @@ -1332,6 +1334,11 @@ auto test_regex = UnitTest{[]{ kak_assert(vm.exec("abcde")); } + { + TestVM<> vm{R"(д)"}; + kak_assert(vm.exec("д", RegexExecFlags::Search)); + } + { TestVM<> vm{R"(\0\x0A\u260e\u260F)"}; const char str[] = "\0\n☎☏"; // work around the null byte in the literal