为什么“(^man)+”匹配行首没有 "man" 的内容?

Why does "(^man)+" match things without "man" at line start?

如果我打开一个使用 apt 包管理系统的 Linux shell 并执行 apt-cache search --names-only "(^man)+" 为什么会 match/output 这样的事情:

我对 POSIX.2 正则表达式模式的初步理解认为原子 (^man) 只能匹配行首的字符串 "man"。显然,上述行在行首没有 "man" 。为什么它们会打印到我的终端?

man apt-cache 表示 --names-only 表示 "Only search on the package and provided package names"。您的命令将匹配包名称或提供的包名称以 man 开头的任何包,并且 gmanjed-extra 都将 man-browser 作为提供的包名称(您可以用 apt-cache show).

看到这个