BUG: Fix np.strings.slice if start > stop by charris · Pull Request #30063 · numpy/numpy

@aaronkollasch @charris

If the slice start > stop, then `slice_strided_loop()` attempts to
allocate a string of negative size, causing a MemoryError. To replicate:
```
>>> a = np.array(['test-strings'], dtype="T")
>>> np.strings.slice(a, 6, 5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "lib/python3.12/site-packages/numpy/_core/strings.py", line 1813, in slice
    return _slice(a, start, stop, step)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MemoryError: Failed to allocate string in slice
```