匹配 elisp 正则表达式中的搜索开始位置

Match start-of-search position in elisp regexp

我正在用 elisp 进行一些解析,并且我有一个已部分使用的字符串(假设它的值为 "foobar123")。假设我已经使用了 "foobar"(所以我知道我需要从 char 6 开始解析)并且期望使用 2.

我已经尝试了以下方法,其中 none 做了我想要的。

(string-match "2" "foobar123" 6) ; Matches the `2` at character 7.
(string-match "^2" "foobar23" 6) ; Not at the beginning of line.
(string-match "\`2" "foobar23" 6) ; Not at the beginning of string.

我已经成功地提取了一个子字符串并与之匹配(即 (string-match "^2" (substring "foobar23" 6))),但这似乎很浪费。感觉我想要一个特殊的字符,意思是"match at start of search only",但是我找不到。有没有更好的方法?

没有我所知道的正则表达式语法。

另一种解决方案是将字符串插入缓冲区,在使用字符串时移动点并使用 \= 构造来匹配点。