This patch originates from the Debian project, see https://www.debian.org/ 15search_word.dpatch by Al Viro Fix {^A} command. (End-of-word was not included in search regexp leading to false positives.) --- nvi-1.81.6.orig/vi/v_search.c 2007-11-18 11:41:42.000000000 -0500 +++ nvi-1.81.6/vi/v_search.c 2009-03-05 15:37:37.000000000 -0500 @@ -322,16 +322,17 @@ v_searchw(SCR *sp, VICMD *vp) { size_t blen, len; + size_t olen = STRLEN(VIP(sp)->keyw); int rval; CHAR_T *bp, *p; - len = VIP(sp)->klen + RE_WSTART_LEN + RE_WSTOP_LEN; + len = olen + RE_WSTART_LEN + RE_WSTOP_LEN; GET_SPACE_RETW(sp, bp, blen, len); MEMCPY(bp, RE_WSTART, RE_WSTART_LEN); p = bp + RE_WSTART_LEN; - MEMCPY(p, VIP(sp)->keyw, VIP(sp)->klen); - p += VIP(sp)->klen; + MEMCPY(p, VIP(sp)->keyw, olen); + p += olen; MEMCPY(p, RE_WSTOP, RE_WSTOP_LEN); rval = v_search(sp, vp, bp, len, SEARCH_SET, FORWARD);