実際のところ
行頭マッチ
$ printf "a\nb\nc\n" | gsed 'N;N;s/\`/X/gm' Xa b c
$ printf "a\nb\nc\n" | gsed 'N;N;s/^/X/gm' Xa Xb Xc
末尾マッチ
$ printf "a\nb\nc\n" | gsed "N;N;s/\'/X/gm" a b cX
$ printf "a\nb\nc\n" | gsed "N;N;s/$/X/gm" aX bX cX
$ printf "a\nb\nc\n" | gsed 'N;N;s/\`/X/gm' Xa b c
$ printf "a\nb\nc\n" | gsed 'N;N;s/^/X/gm' Xa Xb Xc
$ printf "a\nb\nc\n" | gsed "N;N;s/\'/X/gm" a b cX
$ printf "a\nb\nc\n" | gsed "N;N;s/$/X/gm" aX bX cX