I didn't analyze your whole pattern but I tested your code and to detect only hashtags you should use:
NSRegularExpression *regexp = [[NSRegularExpression alloc] initWithPattern:@"#[^# ]+" options:NSRegularExpressionCaseInsensitive error:nil];
Output:
output __NSCFString * @"#dl\n#laklkjdfg\n#glkjs\n" 0x1839cab0
for:
NSString *text = @"#dl#laklkjdfg #glkjs";