code: function (node, result, cache) {
      switch (node.type) {
        case 'start':
        case 'end':
          return ''
        case 'any-character':
          return Random.character()
        case 'backspace':
          return ''
        case 'word-boundary': // TODO
          return ''
        case 'non-word-boundary': // TODO
          break
        case 'digit':
          return Random.pick(
            NUMBER.split('')
          )
        case 'non-digit':
          return Random.pick(
            (LOWER + UPPER + OTHER).split('')
          )
        case 'form-feed':
          break
        case 'line-feed':
          return node.body || node.text
        case 'carriage-return':
          break
        case 'white-space':
          return Random.pick(
            SPACE.split('')
          )
        case 'non-white-space':
          return Random.pick(
            (LOWER + UPPER + NUMBER).split('')
          )
        case 'word': // \w [a-zA-Z0-9]
          return Random.pick(
            (LOWER + UPPER + NUMBER).split('')
          )
        case 'tab':
          break
        case 'vertical-tab':
          break
  
        case 'non-word': // \W [^a-zA-Z0-9]
          return Random.pick(
            OTHER.replace('_', '').split('')
          )
        case 'null-character':
          break
      }
      return node.body || node.text
    }
docs: /* jshint unused:false