code: def _sentence_context(match, language='latin', case_insensitive=True):
      
  
      language_punct = {'greek': r'\.|;',
                        'latin': r'\.|\?|!'}
  
      assert language in language_punct.keys(), \
          'Available punctuation schemes: {}'.format(language_punct.keys())
  
      start = match.start()
      end = match.end()
      window = 1000
      snippet_left = match.string[start - window:start + 1]
      snippet_right = match.string[end:end + window]
      re_match = match.string[match.start():match.end()]
  
      comp_sent_boundary = regex.compile(language_punct[language], flags=regex.VERSION1)
      # Left
      left_punct = []
      for punct in comp_sent_boundary.finditer(snippet_left):
          end = punct.end()
          left_punct.append(end)
      try:
          last_period = left_punct.pop() + 1
      except IndexError:
          last_period = 0
  
      # Right
      right_punct = []
      for punct in comp_sent_boundary.finditer(snippet_right):
          end = punct.end()
          right_punct.append(end)
      try:
          first_period = right_punct.pop(0)
      except IndexError:
          first_period = 0
  
      sentence = snippet_left[last_period:-1] + '*' + re_match + '*' + snippet_right[0:first_period]
  
      return sentence
docs: Take one incoming regex match object and return the sentence in which
       the match occurs.
  
      :rtype : str
      :param match: regex.match
      :param language: str