code: function(html, doc) {
          if (typeof html === 'string') {
              html = Y.Lang.trim(html); // match IE which trims whitespace from innerHTML
  
          }
  
          doc = doc || Y.config.doc;
          var m = re_tag.exec(html),
              create = Y.DOM._create,
              custom = Y.DOM.creators,
              ret = null,
              tag, nodes;
  
          if (html != undefined) { // not undefined or null
              if (m && custom[m[1]]) {
                  if (typeof custom[m[1]] === 'function') {
                      create = custom[m[1]];
                  } else {
                      tag = custom[m[1]];
                  }
              }
  
              nodes = create(html, doc, tag).childNodes;
  
              if (nodes.length === 1) { // return single node, breaking parentNode ref from "fragment"
                  ret = nodes[0].parentNode.removeChild(nodes[0]);
              } else if (nodes[0] && nodes[0].className === 'yui3-big-dummy') { // using dummy node to preserve some attributes (e.g. OPTION not selected)
                  if (nodes.length === 2) {
                      ret = nodes[0].nextSibling;
                  } else {
                      nodes[0].parentNode.removeChild(nodes[0]); 
                       ret = Y.DOM._nl2frag(nodes, doc);
                  }
              } else { // return multiple nodes as a fragment
                   ret = Y.DOM._nl2frag(nodes, doc);
              }
          }
  
          return ret;
      }
docs: Creates a new dom node using the provided markup string.
  @method create
  @param {String} html The markup used to create the element
  @param {HTMLDocument} doc An optional document context
  @return {HTMLElement|DocumentFragment} returns a single HTMLElement
  when creating one node, and a documentFragment when creating
  multiple nodes.