diff --git a/gen.pl b/gen.pl
index 92da06e3367eac6bd6aaca9c127adf28c1edf254..a35cba42a4f68d0053a9615524eff660403a3c26 100755
--- a/gen.pl
+++ b/gen.pl
@@ -74,11 +74,17 @@ while (<>) {
     undef $media;
     undef %last_option;
     undef @options;
-  } elsif (/^([01])(.*?)(?:\(([^()]*)\))?$/) {
+  } elsif (/^([01])(.*?)$/) {
     $single_choice = $1;
 
     $question = $2;
     chomp $question;
+
+    if ($question =~ /\(([^()]*)\)/) {
+      $source = $1;
+      $question =~ s/\Q($source)\E//;
+      chomp $source;
+    }
   } elsif (/^[|](.+)/) {
     if ($last_option{"option"}) {
       $last_option{"option"} .= $1;