# Order array alphanumercially and with a condition

I am trying to reorder an array by two conditions. Making sure that `Pos 10` goes after single digits and that it follows a specific order after that.

I tried to give priority to the string that includes `first` but then if I want to order alphanumerically it resets A to the top. How could I optain the expected result?

```const arr = [
'Pos 10 second',
'Pos 10 A third',
'Pos 10 first',
'Pos 1 second',
'Pos 1 A third',
'Pos 1 first',
'Pos 2 second',
'Pos 2 A third',
'Pos 2 first',
]

const res = arr.sort((a, b) => {
if (a.includes('first')) {
return -1
} else {
return 1
}

}).sort((a, b) => a.localeCompare(b, 'en', { numeric: true}))

console.log(res)

/* Expected output
[
'Pos 1 first',
'Pos 1 second',
'Pos 1 A third',
'Pos 2 first',
'Pos 2 second',
'Pos 2 A third',
'Pos 10 first',
'Pos 10 second',
'Pos 10 A third'
] */```

For the second sort use `match` on numbers within the string value, converted to `Number`.

```const sorted = [
'Pos 10 second',
'Pos 10 A third',
'Pos 10 first',
'Pos 1 second',
'Pos 1 A third',
'Pos 1 first',
'Pos 2 second',
'Pos 2 A third',
'Pos 2 first',
]
.sort((a, b) => a.includes(`first`) ? -1 : 1)
.sort((a, b) => +a.match(/d+/) - +b.match(/d+/));
document.querySelector(`pre`).textContent =
JSON.stringify(sorted, null, 2);```
`<pre></pre>`