code: def extracturls(mesg):
      
      lines = NLRE.split(mesg)
  
      # The number of lines of context above to provide.
      # above_context = 1
      # The number of lines of context below to provide.
      # below_context = 1
  
      # Plan here is to first transform lines into the form
      # [line_fragments] where each fragment is a chunk as
      # seen by parse_text_urls.  Note that this means that
      # lines with more than one entry or one entry that's
      # a URL are the only lines containing URLs.
  
      linechunks = [parse_text_urls(l) for l in lines]
  
      return extract_with_context(linechunks,
                                  lambda chunk: len(chunk) > 1 or
                                  (len(chunk) == 1 and chunk[0].url is not None),
                                  1, 1)
docs: Given a text message, extract all the URLs found in the message, along
      with their surrounding context.  The output is a list of sequences of Chunk
      objects, corresponding to the contextual regions extracted from the string.