Regex search over the active buffer via the vendored koa/regex engine (spork regex -> Janet PEG, cached per pattern). / and ? open the search prompt (forward/backward direction); n follows the direction, N inverts, wrapping through overlapping match offsets. Enter commits the pattern and jumps to the first match; empty input clears. State is per-buffer (pattern, cached peg, matches, index, direction) and recomputed on buffer edits so offsets stay in sync. next-match-from and all-matches expose the primitives for the multi-cursor add-at-next-match/select-all-matches ops.
Matches render as :search-styled spans with the current match in :search-current, appended on the buffer-dirty highlight path. :nohlsearch (alias :nohl) clears the search, as does running the prompt with empty input..