Pattern match in SQL Server using regular expressions

Solution 1:

If you're using at least SQL Server 2012, I think you could solve this with try_parse. Using your data as an example:

create table #testing1 (val varchar(100))

INSERT INTO #testing1 
VALUES
('78878001'),
('1-1321-32'),
('1321-12'),
('702-3-01960 09150006125'),
('700-3-02474 Arkds 4787-PA-51H-99999'),
('121-5489-19'),
('403-3-XXXXX')

select * 
from #testing1
where try_parse(replace(replace(val, '-', ''), 'X', '') AS int) is not null