了解行(line)与字符串(string)的差异是相当重要的。大部分简易程序都是处理输入数据的行,像 grep 与 egrep,以及 sed 大部分的工作(99%)都是这样。在这些情况下,不会有内嵌的换行符出现在将要匹配的数据中,^与$则分别表示行的开头与结尾。
然而,对可应用正则表达式的程序语言,例如 awk、Perl 以及 Python,所处理的就多半是字符串。若每个字符串表示的就是独立的一行输入,则^与$仍旧可以分别表示行的开头与结尾。不过这些程序语言,其实可以让你使用不同的方式来标明每条输入记录的定界符,所以有可能单独的输入“行”里会有内嵌的换行字符。这种情况下,^与$无法匹配内嵌的换行字符;它们只用来表示字符串的开头与结尾。当你开始使用可程序化的软件工具时。