Hi!
the manual stated that regular expressions in calibre are treated as case sensitive, but i noticed a few cases where this is not true. e.g. the re() function and the search.

Sadly python does not allow activating case sensitivity in a regexp, i.e. (?-i) does not work.

I'm mentioning this for two reasons. 1) Maybe the manual should be updated to reflect those changes and 2) it would be nice to somehow use case sensitive regexp. For templates I created my own function to do so, for searching it seems impossible. the search field does not even let me enter the same query with a different case. I know most of the time it's not needed but it would have been useful to me right now so I thought I'd mention it.

the manual stated that regular expressions in calibre are treated as case sensitive, but i noticed a few cases where this is not true. e.g. the re() function and the search.

Can you point at where this is said? It should be fixed, but a quick google search does not find where you are referring to.

Quote:

Sadly python does not allow activating case sensitivity in a regexp, i.e. (?-i) does not work.

This isn't python not working. Calibre sets the ignore case flag parameter on the call to re, which overrides any flags in the regexp.

Quote:

For templates I created my own function to do so, for searching it seems impossible. the search field does not even let me enter the same query with a different case. I know most of the time it's not needed but it would have been useful to me right now so I thought I'd mention it.

This has been discussed before. Allowing case sensitive would require changing to case sensitive or doing something very strange with embedded flags. The first won't happen, and working on the second one (and dealing with the fallout) isn't something that interests me. Perhaps you could take it on.

I created an emergency solution for myself, just in case, that I'm currently not using but in case someone else wants something like this: i created template functions for contains and re that are case sensitive (mainly just removing the flag from the predefined ones) and then if i need to search something case sensitive, i use the custom column as a flag. not elegant, seems slower, but works...