+testing "sed c" \
+ "sed 'crepl'" \
+ "repl\nrepl\n" "" \
+ "first\nsecond\n"
+
+testing "sed nested {}s" \
+ "sed '/asd/ { p; /s/ { s/s/c/ }; p; q }'" \
+ "qwe\nasd\nacd\nacd\n" "" \
+ "qwe\nasd\nzxc\n"
+
+testing "sed a cmd ended by double backslash" \
+ "sed -e '/| one /a \\
+ | three \\\\' -e '/| one-/a \\
+ | three-* \\\\'" \
+' | one \\
+ | three \\
+ | two \\
+' '' \
+' | one \\
+ | two \\
+'
+
+testing "sed a cmd understands \\n,\\t,\\r" \
+ "sed '/1/a\\\\t\\rzero\\none\\\\ntwo\\\\\\nthree'" \
+"\
+line1
+\t\rzero
+one\\\\ntwo\\
+three
+" "" "line1\n"
+
+testing "sed i cmd understands \\n,\\t,\\r" \
+ "sed '/1/i\\\\t\\rzero\\none\\\\ntwo\\\\\\nthree'" \
+"\
+\t\rzero
+one\\\\ntwo\\
+three
+line1
+" "" "line1\n"
+
+# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
+testing "sed with N skipping lines past ranges on next cmds" \
+ "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
+ "4\n4\n" "" "1\n2\n3\n4\n"
+
+testing "sed -i with address modifies all files, not only first" \
+ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
+ "bar\nbar\n" "foo\n" ""
+
+testing "sed understands \r" \
+ "sed 's/r/\r/'" \
+ "\rrr\n" "" "rrr\n"
+
+testing "sed -i finishes ranges correctly" \
+ "sed '1,2d' -i input; echo \$?; cat input" \
+ "0\n3\n4\n" "1\n2\n3\n4\n" ""
+
+testing "sed zero chars match/replace advances correctly 1" \
+ "sed 's/l*/@/g'" \
+ "@h@e@o@\n" "" "helllo\n"
+
+testing "sed zero chars match/replace advances correctly 2" \
+ "sed 's [^ .]* x g'" \
+ "x x.x\n" "" " a.b\n"
+
+testing "sed zero chars match/replace logic must not falsely trigger here 1" \
+ "sed 's/a/A/g'" \
+ "_AAA1AA\n" "" "_aaa1aa\n"
+
+testing "sed zero chars match/replace logic must not falsely trigger here 2" \
+ "sed 's/ *$/_/g'" \
+ "qwerty_\n" "" "qwerty\n"
+
+testing "sed /\$_in_regex/ should not match newlines, only end-of-line" \
+ "sed ': testcont; /\\\\$/{ =; N; b testcont }'" \
+ "\
+this is a regular line
+2
+line with \\
+continuation
+more regular lines
+5
+line with \\
+continuation
+" \
+ "" "\
+this is a regular line
+line with \\
+continuation
+more regular lines
+line with \\
+continuation
+"
+
+testing "sed s///NUM test" \
+ "sed -e 's/a/b/2; s/a/c/g'" \
+ "cb\n" "" "aa\n"
+
+testing "sed /regex/,N{...} addresses work" \
+ "sed /^2/,2{d}" \
+ "1\n3\n4\n5\n" \
+ "" \
+ "1\n2\n3\n4\n5\n"
+
+testing "sed /regex/,+N{...} addresses work" \
+ "sed /^2/,+2{d}" \
+ "1\n5\n" \
+ "" \
+ "1\n2\n3\n4\n5\n"
+
+testing "sed /regex/,+N{...} -i works" \
+ "cat - >input2; sed /^4/,+2{d} -i input input2; echo \$?; cat input input2; rm input2" \
+ "0\n""1\n2\n3\n7\n8\n""1\n2\n7\n8\n" \
+ "1\n2\n3\n4\n5\n6\n7\n8\n" \
+ "1\n2\n4\n5\n6\n7\n8\n" \
+
+# GNU sed 4.2.1 would also accept "/^4/,+{d}" with the same meaning, we don't
+testing "sed /regex/,+0{...} -i works" \
+ "cat - >input2; sed /^4/,+0{d} -i input input2; echo \$?; cat input input2; rm input2" \
+ "0\n""1\n2\n3\n5\n6\n7\n8\n""1\n2\n5\n6\n7\n8\n" \
+ "1\n2\n3\n4\n5\n6\n7\n8\n" \
+ "1\n2\n4\n5\n6\n7\n8\n" \
+
+# GNU sed 4.2.1 would also accept "/^4/,+d" with the same meaning, we don't
+testing "sed /regex/,+0<cmd> -i works" \
+ "cat - >input2; sed /^4/,+0d -i input input2; echo \$?; cat input input2; rm input2" \
+ "0\n""1\n2\n3\n5\n6\n7\n8\n""1\n2\n5\n6\n7\n8\n" \
+ "1\n2\n3\n4\n5\n6\n7\n8\n" \
+ "1\n2\n4\n5\n6\n7\n8\n" \
+
+testing "sed 's///w FILE'" \
+ "sed 's/qwe/ZZZ/wz'; cat z; rm z" \
+ "123\nZZZ\nasd\n""ZZZ\n" \
+ "" \
+ "123\nqwe\nasd\n"
+
+testing "sed uses previous regexp" \
+ "sed '/w/p;//q'" \
+ "q\nw\nw\n" \
+ "" \
+ "q\nw\ne\nr\n"
+
+# testing "description" "commands" "result" "infile" "stdin"
+