diff --git a/scripts/regression_tests.pd b/scripts/regression_tests.pd
index da194f7fac14624f708cce6d880440d88e1c431c..fcdd0847a1c5ab6a2115fc7d03631a915c62d17e 100644
--- a/scripts/regression_tests.pd
+++ b/scripts/regression_tests.pd
@@ -1,43 +1,64 @@
-#N canvas 55 176 582 396 12;
-#X obj 395 186 r \$0-result;
-#X obj 395 251 route 0;
-#X obj 427 305 print failure;
-#X obj 441 213 tgl 28 0 empty empty force\ failure 31 11 0 10 -262144
--1 -1 0 1;
-#X obj 159 79 bng 31 250 50 0 empty empty Run_all 39 13 0 10 -262144
+#N canvas 3 60 749 617 12;
+#X obj 345 301 r \$0-result;
+#X obj 345 326 route 0;
+#X obj 453 470 print failure;
+#X obj 430 336 tgl 28 0 empty empty Print_All_Results 31 11 0 12 -262144
+-1 -1 1 1;
+#X obj 159 149 bng 31 250 50 0 empty empty Run_all 39 13 0 12 -262144
 -1 -1;
 #X obj 56 25 r init;
-#X obj 355 96 route dollarzero;
-#X text 117 25 <- we start Pd with a message \$0 for the binbuf test
+#X obj 345 191 route dollarzero;
+#X obj 345 411 t b a;
+#X obj 345 541 s pd;
+#X obj 56 120 trigger bang bang anything;
+#X msg 56 145 gui;
+#X obj 56 170 pdinfo;
+#X obj 56 195 sel 0;
+#X obj 56 245 s pd;
+#X msg 345 516 quit 1;
+#X msg 56 220 quit;
+#X obj 145 191 rtest msg_dollarzero;
+#X obj 145 246 rtest msg_dollarzero_semi;
+#X obj 145 302 rtest msg_click;
+#X obj 345 216 rtest binbuf_dollarzero;
+#X msg 345 440 gui;
+#X obj 345 465 pdinfo;
+#X obj 345 490 sel 0;
+#X text 117 25 <- we start Pd with the -send "init etc." flag. This
+will automatically start the tests and allow us to send a comma-separated
+list of messages which will be evaluated by Pd without a target. This
+is handy for some binbuf tests.;
+#X text 345 120 To run this test we use the following startup-flag:
 ;
-#X obj 395 276 t b a;
-#X obj 395 356 s pd;
-#X obj 56 50 trigger bang bang anything;
-#X msg 56 75 gui;
-#X obj 56 100 pdinfo;
-#X obj 56 125 sel 0;
-#X obj 56 175 s pd;
-#X msg 395 331 quit 1;
-#X msg 56 150 quit;
-#X obj 145 121 rtest msg_dollarzero;
-#X obj 145 176 rtest msg_dollarzero_semi;
-#X obj 145 232 rtest msg_click;
-#X obj 355 121 rtest binbuf_dollarzero;
+#X text 345 150 -send "init dollarzero \$0";
+#X text 536 150 <- we have to escape the arg;
+#X text 556 190 escape it in a comment.;
+#X text 556 170 in bash but we can't;
+#X obj 391 374 spigot;
+#X obj 407 440 route 1;
+#X obj 407 495 print success;
 #X connect 0 0 1 0;
-#X connect 1 0 8 0;
-#X connect 3 0 1 1;
-#X connect 4 0 17 0;
-#X connect 5 0 10 0;
-#X connect 6 0 20 0;
-#X connect 8 0 15 0;
-#X connect 8 1 2 0;
+#X connect 1 0 7 0;
+#X connect 1 1 29 0;
+#X connect 3 0 29 1;
+#X connect 4 0 16 0;
+#X connect 5 0 9 0;
+#X connect 6 0 19 0;
+#X connect 7 0 20 0;
+#X connect 7 1 30 0;
+#X connect 9 0 10 0;
+#X connect 9 1 16 0;
+#X connect 9 2 6 0;
 #X connect 10 0 11 0;
-#X connect 10 1 17 0;
-#X connect 10 2 6 0;
 #X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X connect 13 0 16 0;
-#X connect 15 0 9 0;
-#X connect 16 0 14 0;
+#X connect 12 0 15 0;
+#X connect 14 0 8 0;
+#X connect 15 0 13 0;
+#X connect 16 0 17 0;
 #X connect 17 0 18 0;
-#X connect 18 0 19 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 14 0;
+#X connect 29 0 7 0;
+#X connect 30 0 31 0;
+#X connect 30 1 2 0;
diff --git a/scripts/regression_tests/binbuf_dollarzero.pd b/scripts/regression_tests/binbuf_dollarzero.pd
index cce3d20d63db6da5bfde2c6715ed7b1428553916..3c266f73912c569bc1e2d6787f476180953c22f4 100644
--- a/scripts/regression_tests/binbuf_dollarzero.pd
+++ b/scripts/regression_tests/binbuf_dollarzero.pd
@@ -1,9 +1,22 @@
-#N canvas 335 192 582 396 10;
-#X obj 31 21 inlet;
-#X obj 31 121 outlet;
-#X obj 31 49 == 0;
-#X obj 31 81 list append dollarzero in a binbuf with no target should
-expand to 0;
+#N canvas 144 129 582 396 12;
+#X obj 36 25 inlet;
+#X obj 36 225 outlet;
+#X obj 36 50 route float;
+#X obj 36 116 f 1;
+#X obj 36 75 select 0;
+#X obj 89 115 t b a;
+#X obj 121 152 list prepend dollarzero in a binbuf with no target should
+expand to "0". In this test it expanded to;
+#X obj 89 152 f 0;
+#X obj 36 195 list append;
 #X connect 0 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 0;
+#X connect 2 0 4 0;
+#X connect 2 1 5 0;
+#X connect 3 0 8 0;
+#X connect 4 0 3 0;
+#X connect 4 1 5 0;
+#X connect 5 0 7 0;
+#X connect 5 1 6 0;
+#X connect 6 0 8 1;
+#X connect 7 0 8 0;
+#X connect 8 0 1 0;
diff --git a/scripts/regression_tests/msg_click.pd b/scripts/regression_tests/msg_click.pd
index 0a958585d82900cee8445c47652c3a05c0f4fd52..4e715320f4466cf6f1c6da41afdcf1db8b072c22 100644
--- a/scripts/regression_tests/msg_click.pd
+++ b/scripts/regression_tests/msg_click.pd
@@ -1,20 +1,20 @@
-#N canvas 596 176 582 396 10;
-#X obj 31 21 inlet;
-#X msg 31 83 click 0 0 0 0 0;
-#X msg 31 105 \$1;
-#X obj 31 43 trigger bang bang;
-#X obj 150 83 f 0;
-#X msg 150 105 \$1;
-#X obj 31 132 ==;
-#X obj 31 161 list append clicking a msg box should send a single "0"
-as an argument;
-#X obj 31 196 outlet;
+#N canvas 34 75 582 396 12;
+#X obj 36 25 inlet;
+#X msg 152 97 click 0 0 0 0 0;
+#X msg 152 122 \$1;
+#X obj 36 50 trigger bang bang;
+#X obj 36 97 f 0;
+#X msg 36 122 \$1;
+#X obj 36 154 ==;
+#X obj 36 229 outlet;
+#X obj 36 188 list append clicking a message box should send a single
+"0" as an argument;
 #X connect 0 0 3 0;
 #X connect 1 0 2 0;
-#X connect 2 0 6 0;
-#X connect 3 0 1 0;
-#X connect 3 1 4 0;
+#X connect 2 0 6 1;
+#X connect 3 0 4 0;
+#X connect 3 1 1 0;
 #X connect 4 0 5 0;
-#X connect 5 0 6 1;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
+#X connect 5 0 6 0;
+#X connect 6 0 8 0;
+#X connect 8 0 7 0;
diff --git a/scripts/regression_tests/msg_dollarzero.pd b/scripts/regression_tests/msg_dollarzero.pd
index 0170933326bd803a0c45c33d2454b628b2314360..cf70c9a14aa0daa2812833221401d879a2549522 100644
--- a/scripts/regression_tests/msg_dollarzero.pd
+++ b/scripts/regression_tests/msg_dollarzero.pd
@@ -1,16 +1,27 @@
-#N canvas 341 250 582 396 10;
-#X obj 31 21 inlet;
-#X obj 31 46 t b b;
-#X obj 31 77 f \$0;
-#X msg 73 77 \$0;
-#X obj 31 166 outlet;
-#X obj 31 131 list append dollarzero should function the same in a
-message box as it does in an object box;
-#X obj 31 109 ==;
+#N canvas 12 147 582 396 12;
+#X obj 36 25 inlet;
+#X obj 36 54 t b b;
+#X obj 36 90 f \$0;
+#X msg 93 90 \$0;
+#X obj 36 324 outlet;
+#X obj 36 197 ==;
+#X obj 36 292 list append;
+#X obj 68 197 list;
+#X obj 36 115 t a a;
+#X obj 93 115 t a a;
+#X msg 68 224 dollarzero should have the same value in a message box
+as it does in an object box. In this test object box dollarzero was
+\$1 and msg box dollarzero was \$2;
 #X connect 0 0 1 0;
 #X connect 1 0 2 0;
 #X connect 1 1 3 0;
-#X connect 2 0 6 0;
-#X connect 3 0 6 1;
-#X connect 5 0 4 0;
-#X connect 6 0 5 0;
+#X connect 2 0 8 0;
+#X connect 3 0 9 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 7 0 10 0;
+#X connect 8 0 5 0;
+#X connect 8 1 7 0;
+#X connect 9 0 5 1;
+#X connect 9 1 7 1;
+#X connect 10 0 6 1;
diff --git a/scripts/regression_tests/msg_dollarzero_semi.pd b/scripts/regression_tests/msg_dollarzero_semi.pd
index 6f06c20de1bdf419775c8705543e8e1b7b87f148..ada13ce3c48413a6f79874abef6005d768a6e85c 100644
--- a/scripts/regression_tests/msg_dollarzero_semi.pd
+++ b/scripts/regression_tests/msg_dollarzero_semi.pd
@@ -1,13 +1,13 @@
-#N canvas 626 167 582 396 10;
-#X obj 31 21 inlet;
-#X obj 31 46 t b b;
-#X obj 31 226 outlet;
-#X obj 31 167 f 0;
-#X obj 46 116 r \$0-dollsym;
-#X msg 58 77 \; \$0-dollsym bang;
-#X obj 46 138 f 1;
-#X obj 31 191 list append dollarzero in symbol should expand properly
-after semicolon;
+#N canvas 57 140 582 396 12;
+#X obj 36 25 inlet;
+#X obj 36 54 t b b;
+#X obj 36 264 outlet;
+#X obj 36 195 f 0;
+#X obj 54 135 r \$0-dollsym;
+#X msg 68 90 \; \$0-dollsym bang;
+#X obj 54 161 f 1;
+#X obj 36 223 list append dollarzero should expand properly in a symbol
+that follows a semicolon;
 #X connect 0 0 1 0;
 #X connect 1 0 3 0;
 #X connect 1 1 5 0;
diff --git a/scripts/rtest.pd b/scripts/rtest.pd
index 1472f601283a998a3289e928960d0293bebba4a8..2de778d14d19309b9647607af34b449fd24b5432 100644
--- a/scripts/rtest.pd
+++ b/scripts/rtest.pd
@@ -1,22 +1,53 @@
-#N canvas 120 270 353 357 12;
+#N canvas 212 151 506 469 12;
 #X obj 36 60 inlet;
-#X obj 36 85 t b b;
-#X obj 36 296 outlet;
-#X obj 68 267 send;
-#X obj 93 152 loadbang;
-#X msg 93 178 dollarzero;
-#X obj 93 204 canvasinfo 1;
-#X msg 93 229 symbol \$1-result;
-#X obj 106 63 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+#X obj 36 416 outlet;
+#X obj 68 387 send;
+#X obj 93 282 loadbang;
+#X msg 93 308 dollarzero;
+#X obj 93 334 canvasinfo 1;
+#X msg 93 359 symbol \$1-result;
+#X obj 106 63 bng 20 250 50 0 empty empty Run 21 8 0 12 -262144 -1
 -1;
 #X obj 68 124 regression_tests/\$1;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 1 9 0;
+#X obj 36 85 t b a;
+#X obj 68 149 list split 1;
+#X obj 68 244 list;
+#X text 260 201 <- insert "test_name:" here;
+#X obj 219 124 loadbang;
+#X obj 219 149 list append \$1;
+#X msg 219 174 \$1:;
+#X obj 108 211 list prepend;
+#X obj 156 63 bng 20 250 50 0 empty empty Show_Test 21 8 0 12 -262144
+-1 -1;
+#N canvas 378 161 450 369 vis 0;
+#X obj 118 84 list append \$1;
+#X obj 86 34 inlet;
+#X obj 93 146 send;
+#X msg 58 102 vis 1;
+#X obj 86 59 t b b;
+#X msg 118 109 symbol pd-\$1.pd;
+#X connect 0 0 5 0;
+#X connect 1 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 4 1 0 0;
+#X connect 5 0 2 1;
+#X restore 156 94 pd vis;
+#X connect 0 0 9 0;
+#X connect 3 0 4 0;
 #X connect 4 0 5 0;
 #X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 3 1;
-#X connect 8 0 9 0;
-#X connect 9 0 3 0;
-#X coords 0 -1 1 1 158 46 1 99 42;
+#X connect 6 0 2 1;
+#X connect 7 0 8 0;
+#X connect 8 0 10 0;
+#X connect 9 0 1 0;
+#X connect 9 1 8 0;
+#X connect 10 0 11 0;
+#X connect 10 1 16 0;
+#X connect 11 0 2 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 1;
+#X connect 16 0 11 1;
+#X connect 17 0 18 0;
+#X coords 0 -1 1 1 165 46 1 99 42;