Index: trunk/lib/Text/FormBuilder/grammar
===================================================================
--- trunk/lib/Text/FormBuilder/grammar	(revision 21)
+++ trunk/lib/Text/FormBuilder/grammar	(revision 22)
@@ -142,6 +142,5 @@
     { $rows = $item[1]; $cols = $item[3] }
 
-#TODO: zero width labels
-label: '|' /[^:\[\{\/\n]*/i { $item[2] }
+label: '|' (simple_multiword | quoted_string) { $item[2] }
 
 hint: '[' /[^\]]+/ ']'    { $item[2] }
@@ -149,5 +148,13 @@
 type: ':' /textarea|text|password|file|checkbox|radio|select|hidden|static/
 
-default: '=' /[^\@\{\s]+/
+default: '=' (simple_multiword | quoted_string) { $item[2] }
+
+# for simple multiword values not involving punctuation
+simple_multiword: <skip:''> /[\w\t ]+/ { $item[2] }
+
+# my attempt at a single-quoted, non-interpolating string
+# where the backslash can escape literal single quotes
+quoted_string: <skip:''> "'" /(\\'|[^'])*/ "'"
+    { $item[3] =~ s/\\'/'/g; $item[3] }
 
 option_list: options | list_var
