adapted from https://robinmalfait.com/blog/natural-sorting-of-strings-containing-numbers
fixed an issue where foo_1_bar would come after foo_14_bar by consuming numbers before the continue
usage:
import { compare } from './compare.js'
const list = [