JSFiddle - React, Tailwind, and code Playground
HTML
<div id="container">
</div>
JavaScript
var re = /([0-9]{8}_)(abc|def)(?:_xx)?(\.pdf)/;
var tests = [
'20160131_abc.pdf',
'20160131_abc_xx.pdf',
'20160131_def.pdf'
];
var container = document.getElementById('container');
tests.forEach(function(test){
container.innerHTML += "test:"+test+" → ";
var match = test.match(re);
container.innerHTML += match.slice(1).join('')+"<br/>";
});