Может, не нужно проверять всю строку? Если все линки правильные-авитные, то проверять только окончание строки – можно реверснуть строку
.split('').reverse().join('')
и проверять только начало
/^\d{4,}_/
Вот одной регуляркой под ваше требование:
var re = new RegExp('^https?://(\\w+\\.)?avito\\.ru/([^/]+/)+([a-z_]+(?!_\\d{4,}))$');
var t1 = 'https://www.avito.ru/moskva/odezhda_obuv_aksessuary/magazin_pizham_kigurumi_na_lubyanke_56545';
var t2 = 'https://www.avito.ru/moskva/kvartiry/snimu';
re.test(t1) // false
re.test(t2) // true