Правая подрезка подстрок, как вы идете:
(?<sub>.{1,40})(?:\s+|$)|(?<sub>.{40})
Первая альтернатива пытается сделать чистый перерыв, но вторая - это запасной вариант для слепой рубки в случае необходимости. После этого подстроки доступны в m.Groups["sub"].Captures
.