Business rules are operational rules, often coded into software, that business organizations follow to perform various activities, such as transaction processing, quality control, business planning and database management. Over time, business rules evolve and the software that implemented them are also changed and maintained. As the encompassing software becomes large and aged, the business rules embedded are difficult to extract and understand, evolving with the encompassing software over time. Furthermore, the encompassing software is changed without changing the corresponding text documents, and thus, often, the business organization trusts the code more than any other documents. This paper proposes several techniques to extract business rules from legacy code. It is possible to use a generic software maintenance tool to extract business rules; however this can be an expensive exercise. We propose a tailored solution approach for the business rule extraction (BRE) problem, which combines variable classifications, program slicing, heuristics for identifying slicing criteria, multiple representations of business rules, bottom-up data flow analysis and hierarchical abstraction, among other maintenance techniques. The proposed solution approach has been implemented as a system and successfully tried with a number of industrial programs.