Looks like it triggers on anything starting with file:// (+/) case-insensitive, but then something later in the data extraction makes the incorrect assumption that the string should start with file:// (+/) lowercase, and throws an assert. It’s really quite bad that a bug inside the data detectors can bring down a whole app.
Apple has won an import ban from the US International Trade Commission blocking HTC Android phones that infringe upon its Data Detectors patent, a move that will require Android to drop the feature or implement it in a way that does not infringe.
This is likely the result of some leftover debug code in the production build of DataDetectorsCore. Strictly speaking, an assertion check fails and forces the application to terminate, not crashthis is not a possible vector for exploitation (arbitrary code execution or privilege escalation) like some other potential C-string related bugs.
It is a rather glaring oversight, and its surprising that it has gone undetected for so long.
Most apps don't use data detectors, only a few do so the data detectors thing is highly unlikely. Since the crashing stops when you disable things like autocorrect and spellchecking it is far more likely to be in that system. You can try it with TextEdit: enabling or disabling doesn't matter: it keeps crashing. Disable the spellcheck feature and it stops crashing. It also explains why various other apps do not crash such as LibreOffice and Firefox. They use their own spellchecking system, not the one in OS X.