libc++'s std::regex ignores match_prev_avail (and match_not_bol with
it) for '^', matching it wherever a search resumes, and misses '\b' at
the end of the subject. Search_NextPrevVisitReferenceMatches now builds
its reference with std::cregex_iterator, which gets '^' right, and the
'\b' replace case runs only against libstdc++. A new test checks that
kte::Regex matches '^' only at the start of the subject; it is skipped
for std::regex builds on libc++, which have the bug.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>