def _find(expr, sub, start=0, end=None):
    """
    Return lowest indexes in each strings in the sequence or scalar
    where the substring is fully contained between [start:end]. Return -1 on failure.
    Equivalent to standard str.find().

    :param expr:
    :param sub: substring being searched
    :param start: left edge index
    :param end: right edge index
    :return: sequence or scalar
    """

    return _string_op(expr, Find, output_type=types.int64,
                      _sub=sub, _start=start, _end=end)
Return lowest indexes in each strings in the sequence or scalar
    where the substring is fully contained between [start:end]. Return -1 on failure.
    Equivalent to standard str.find().

    :param expr:
    :param sub: substring being searched
    :param start: left edge index
    :param end: right edge index
    :return: sequence or scalar