You have to specify the `-r` option, too, in order to enable interpretation of extended regular expression syntax ( **but note** that `-E` is more portable than `-r` and will soon supersede it), so you should use
sed -E -i.bak 's/^([^|]+).[^|]+(.*)/\1\2/' file.fas
Alternatively, resort to basic regular expressions:
sed -i.bak 's/^\([^|]\{1,\}\).[^|]\{1,\}\(.*\)/\1\2/' file.fas
**Update**
In a reply to @terdon's question you confirmed that the files are FASTA files. In that case, you may improve efficiency by only considering header lines (those starting with `>`), as proposed by @terdon:
sed -E -i.bak 's/^(>[^|]+).[^|]+(.*)/\1\2/' file.fas