pub fn split_camel(token: &str) -> Vec<String>
Split camelCase/PascalCase into lowercase tokens. Snake_case returned as-is (already meaningful in BM25). Original token is NOT included — caller already has it in bm25_ranked.