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