whole_func_string: function string(state) {
          return [
              {
              token : "string",
              regex : '".*?"'
          }, {
              token : "string", // multi line string start
              regex : '["].*$',
              next : state + "-qqstring"
          }, {
              token : "string",
              regex : "'.*?'"
          }, {
              token : "string", // multi line string start
              regex : "['].*$",
              next : state + "-qstring"
          }]
      }
func_code_string: function string(state) {
          return [
              {
              token : "string",
              regex : '".*?"'
          }, {
              token : "string", // multi line string start
              regex : '["].*$',
              next : state + "-qqstring"
          }, {
              token : "string",
              regex : "'.*?'"
          }, {
              token : "string", // multi line string start
              regex : "['].*$",
              next : state + "-qstring"
          }]
      }
func_documentation_string: regexp must not have capturing parentheses regexps are ordered -> the first match is used