What about avoiding the pattern match and check for valid date values?
DECLARE @searchString varchar(1500);
SET @searchString='03/09/2017 07:52 AM | Lastname, Firstname | Completed - irrelevant note.';
SELECT CASE WHEN TRY_CONVERT( datetime, SUBSTRING( @searchString, 0, CHARINDEX('|', @searchString))) IS NOT NULL THEN 'dateFirst' ELSE 'somethingElse' END;