A software development system (102, 202), comprising: a digital memory; an executable software development tool having a user interface; and a processor in operable communication with the memory, the processor configured to perform software development workflow steps for example-driven text replacement in a source code which is displayed in the user interface, the steps including (a) receiving through the user interface a text-to-find example (304, 410) and a corresponding replacement-text example (304, 412), (b) submitting the examples to a pattern match code and transform synthesizer, (c) getting from the pattern match code and transform synthesizer a pattern match code (210, 404) and a corresponding transform, (d) locating in the source code a match, namely, an instance of source code text that matches a pattern defined by the pattern match code, (e) applying the transform to a copy of the match thereby producing a transformed match, and (f) displaying the match and the transformed match in the user interface; whereby the system provides a software developer with a pattern matching find-replace functionality without requiring the developer to author the pattern match code or the transform, wherein the system further comprises a generality control functionality which is configured, upon execution, to provide to the pattern match code and transform synthesizer, for at least one text-to-find example and a corresponding replacement-text example submitted to the pattern match code and transform synthesizer, at least one generality constraint related to the at least one text-to-find example and the corresponding replacement-text example, by: obtaining a generality level selection through a first control (420, 426) of the user interface, the generality level defining whether to give more matches or fewer matches; obtaining a generality route selection through a second control (420, 428) of the user interface, the generality route defining a sub-part of the at least one text-to-find example; and submitting a generality constraint to the pattern match code and transform synthesizer, the generality defining whether to give more matches or fewer matches according to the obtained generality level for the obtained generality route, and wherein the pattern match code and the corresponding transform both depend on the generality constraint. a digital memory; an executable software development tool having a user interface; and a processor in operable communication with the memory, the processor configured to perform software development workflow steps for example-driven text replacement in a source code which is displayed in the user interface, the steps including (a) receiving through the user interface a text-to-find example (304, 410) and a corresponding replacement-text example (304, 412), (b) submitting the examples to a pattern match code and transform synthesizer, (c) getting from the pattern match code and transform synthesizer a pattern match code (210, 404) and a corresponding transform, (d) locating in the source code a match, namely, an instance of source code text that matches a pattern defined by the pattern match code, (e) applying the transform to a copy of the match thereby producing a transformed match, and (f) displaying the match and the transformed match in the user interface; whereby the system provides a software developer with a pattern matching find-replace functionality without requiring the developer to author the pattern match code or the transform, wherein the system further comprises a generality control functionality which is configured, upon execution, to provide to the pattern match code and transform synthesizer, for at least one text-to-find example and a corresponding replacement-text example submitted to the pattern match code and transform synthesizer, at least one generality constraint related to the at least one text-to-find example and the corresponding replacement-text example, by: obtaining a generality level selection through a first control (420, 426) of the user interface, the generality level defining whether to give more matches or fewer matches; obtaining a generality route selection through a second control (420, 428) of the user interface, the generality route defining a sub-part of the at least one text-to-find example; and submitting a generality constraint to the pattern match code and transform synthesizer, the generality defining whether to give more matches or fewer matches according to the obtained generality level for the obtained generality route, and obtaining a generality level selection through a first control (420, 426) of the user interface, the generality level defining whether to give more matches or fewer matches; obtaining a generality route selection through a second control (420, 428) of the user interface, the generality route defining a sub-part of the at least one text-to-find example; and submitting a generality constraint to the pattern match code and transform synthesizer, the generality defining whether to give more matches or fewer matches according to the obtained generality level for the obtained generality route, and wherein the pattern match code and the corresponding transform both depend on the generality constraint.