What will be the best way to test following:
We have a large complex class that we'll call ValueSetter which accepts string, gets some data from it and sets this data to several variables like 
message_title, message_content, message_number
To perform this it uses another one class called Rule where are rules for particular case described with regular expressions.
What is needed:
Because in each Rule there are about 5 cases to match, we ant to test each of them separately.
So far we need only to assert that particular Rule returns correct string in each case. What is the best way in this situation ?
Try to test Rule and ValueSetter each in their own Test. Test that the Rule really does what you think in the 5 cases you describe in your question. Then when you test your ValueSetter just assume that Rule does what you think and set for example message_title, message_content and message_number directly. So you inject the information in a way that Rule should have done. 
This is what you usually do in a unittest. In order to test if everything is working in conjunction you usually would do a functional test that tests the application from a higher/user level.
If you cannot construct a ValueSetter without using a Rule then just create a new class for the test that inherits from ValueSetter and overwrite the __init__ method. In this way you will be able to get a 'blank' object and set the member variables as you expect them to be directly.
Test part of complex structure with unittest and mocks