Cleaning up bad data with REGEXP_REPLACE too aggressive with non latin chars
Given proper lc_ctype (not C) and encoding (especially not SQL_ASCII), character classes could be used in regular expressions to include accents without having to specify ranges.

Example:

=# show lc_ctype;
  lc_ctype   
-------------
 fr_FR.UTF-8

=# show server_encoding ;
 server_encoding 
-----------------
 UTF8


=# \set raw_text '- Snälla du! Kan du sätta? : om vägledni i förskolan'

=# select regexp_replace(:'raw_text', '\w', ' ', 'g')
                    regexp_replace                    
------------------------------------------------------
   Snälla du  Kan du sätta    om vägledni i förskolan


If you wanted to keep punctuation signs:

=# select regexp_replace(:'raw_text', '[^\w[:punct:]]', ' ', 'g');
                    regexp_replace                    
------------------------------------------------------
 - Snälla du! Kan du sätta? : om vägledni i förskolan


Another possilibity to clean up could be to filter out non-printable characters:

=# select regexp_replace(:'raw_text', '[^[:print:]]', ' ', 'g');
                    regexp_replace                    
------------------------------------------------------
 - Snälla du! Kan du sätta? : om vägledni i förskolan