+# TEST_SOMETHING
+# text
+# text
+# END
+sub extract_multiline {
+ my ($flag, $contents, $name) = @_;
+ if ($contents =~ /$flag\n/) {
+ my ($output) = ($contents =~ /$flag\n(.*?\n)END[ *\/]*\n/s);
+ die "$name used $flag without END\n" if !defined($output);
+ return $output;
+ }
+ return undef;
+}
+
+
+# TEST_SOMETHING
+# text
+# OR
+# text
+# END
+sub extract_multiple_multiline {
+ my ($flag, $contents, $name) = @_;
+ if ($contents =~ /$flag\n/) {
+ my ($output) = ($contents =~ /$flag\n(.*?\n)END[ *\/]*\n/s);
+ die "$name used $flag without END\n" if !defined($output);
+
+ $output =~ s/\nOR\n/\n|/sg;
+ $output = "^(" . $output . ")\$";
+ return $output;
+ }
+ return undef;
+}
+
+