code: def str_count(arr, pat, flags=0):
      
      regex = re.compile(pat, flags=flags)
      f = lambda x: len(regex.findall(x))
      return _na_map(f, arr, dtype=int)
docs: Count occurrences of pattern in each string of the Series/Index.
  
      This function is used to count the number of times a particular regex
      pattern is repeated in each of the string elements of the
      :class:`~pandas.Series`.
  
      Parameters
      ----------
      pat : str
          Valid regular expression.
      flags : int, default 0, meaning no flags
          Flags for the `re` module. For a complete list, `see here
          <https://docs.python.org/3/howto/regex.html#compilation-flags>`_.
      **kwargs
          For compatibility with other string methods. Not used.
  
      Returns
      -------
      Series or Index
          Same type as the calling object containing the integer counts.
  
      See Also
      --------
      re : Standard library module for regular expressions.
      str.count : Standard library version, without regular expression support.
  
      Notes
      -----
      Some characters need to be escaped when passing in `pat`.
      eg. ``'$'`` has a special meaning in regex and must be escaped when
      finding this literal character.
  
      Examples
      --------
      >>> s = pd.Series(['A', 'B', 'Aaba', 'Baca', np.nan, 'CABA', 'cat'])
      >>> s.str.count('a')
      0    0.0
      1    0.0
      2    2.0
      3    2.0
      4    NaN
      5    0.0
      6    1.0
      dtype: float64
  
      Escape ``'$'`` to find the literal dollar sign.
  
      >>> s = pd.Series(['$', 'B', 'Aab$', '$$ca', 'C$B$', 'cat'])
      >>> s.str.count('\\$')
      0    1
      1    0
      2    1
      3    2
      4    2
      5    0
      dtype: int64
  
      This is also available on Index
  
      >>> pd.Index(['A', 'A', 'Aaba', 'cat']).str.count('a')
      Int64Index([0, 0, 2, 1], dtype='int64')