Your problem here is that the underscore character is itself a wildcard in T-SQL, matching any single character. That explains the results you are seeing.
The solution is to ESCAPE the wildcard. Something (rather inelegant) like this (untested):
Select name
from sys.tables
where name like '%|_ar|_%' ESCAPE '|';
- This reply was modified 4 years, 10 months ago by Phil Parkin.